sql >> Database teknologi >  >> RDS >> Mysql

Laravel veltalende med to "WHERE NOT IN" i underforespørgsel

I stedet for at udføre 3 forskellige forespørgsler kan du bruge som vist nedenfor,

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();

Denne kode vil give nøjagtig den samme forespørgsel, som er stillet i spørgsmålet, for at kontrollere forespørgslen, brug følgende kode

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();

Output vil være,

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. Binding af parametre til Oracle Dynamic SQL

  2. Mysql bygger dynamisk forespørgselsstreng i en lagret procedure baseret på logik

  3. Hvad er den bedste måde at versionskontrollere mine SQL-server-lagrede procedurer på?

  4. Sådan opretter du forbindelse til en MySQL-datakilde i Visual Studio