在 Laravel 查询生成器中使用 And 子句

Using And Clause in Laravel Query Bulider

我有以下查询:

    SELECT
  customers.CustCompanyName,
  addresses.AddressLine1,
  orders.*
FROM orders
  INNER JOIN customers
    ON orders.CustID = customers.CustID
  INNER JOIN customer_addresses
    ON customer_addresses.CustID = customers.CustID
  INNER JOIN addresses
    ON customer_addresses.AddressID = addresses.AddressID
    AND orders.CustAddID = customer_addresses.CustAd

如何在使用 laravel 查询生成器时合并 AND 子句:

$orders = DB::table('orders')
        ->join('customers', 'orders.CustID', '=', 'customers.CustID')
        ->join('customer_addresses','customer_addresses.CustID', '=' , 'customers.CustID' )
        ->join('addresses','customer_addresses.AddressID','=','addresses.AddressID')->AND

我找不到任何使用 AND 子句的工作示例。

对于:

INNER JOIN addresses
   ON customer_addresses.AddressID = addresses.AddressID
   AND orders.CustAddID = customer_addresses.CustAd

你应该使用:

->join('addresses', function($join) {
   $join->on('customer_addresses.AddressID', '=', 'addresses.AddressID')
   ->whereRaw('orders.CustAddID = customer_addresses.CustAd');
});

您也可以查看Joins in Query Builder了解详情