sql >> Databáze >  >> RDS >> Mysql

Laravel Výmluvná se dvěma „KDE NENÍ IN“ v dílčím dotazu

Místo provádění 3 různých dotazů můžete použít, jak je uvedeno níže,

DB::table('delivery_sap')
->whereNotIn('cust', function ($query) {
        $query->select('cust_name')->from('customer');
    })
->whereNotIn('cust_no', function ($query) {
        $query->select('cust_code')->from('customer');
    })
->select('cust', 'cust_no')
->distinct('cust')
->get();

Tento kód poskytne přesně stejný dotaz, jaký je položen v otázce, pro kontrolu dotazu použijte následující kód

DB::table('delivery_sap')
->whereNotIn('cust', function ($query) {
        $query->select('cust_name')->from('customer');
    })
->whereNotIn('cust_no', function ($query) {
        $query->select('cust_code')->from('customer');
    })
->select('cust', 'cust_no')
->distinct('cust')
->toSql();

Výstup bude,

select distinct `cust`, `cust_no` from `delivery_sap` 
where `cust` not in (select `cust_name` from `customer`) 
and `cust_no` not in (select `cust_code` from `customer`)


  1. Rozdělte řetězec a procházejte hodnoty v Proceduře MySql

  2. Jak funguje Ceiling() v PostgreSQL

  3. Jak podmíněně zvládnout dělení nulou pomocí MySQL

  4. MySQL – Operand by měl obsahovat 1 sloupec(y)