sql >> Databasteknik >  >> RDS >> Mysql

Laravel Eloquent med två "WHERE NOT IN" i underfrågan

Istället för att köra tre olika frågor kan du använda som visas nedan,

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

Denna kod kommer att ge exakt samma fråga som ställs i frågan, för att kontrollera frågan, använd följande kod

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

Utdata blir,

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. Hur man migrerar fristående Moodle till en klustrad databas skalbar installation

  2. Utvecklarverktyg för direkt åtkomst till databaser

  3. Bra verktyg för att visualisera databasschema?

  4. SQL Server-fel Implicit konvertering av eftersom sammanställningen av värdet är olöst på grund av en sorteringskonflikt.