illuminate database query builder

https://laravel.com/docs/5.6/queries#joinsphp

$couser = Company::find(1);
$couser->crossJoin('company_special_sub', function ($join) use ($couser) {
    $join->on('company.id', '=', 'company_special_sub.company_id')
        ->where('company_special_sub.status', '=', 0)
        ->where('company.id', $couser->id);
});

根據 mysql 官方文檔聽說,cross join / join / inner join 在mysql 是的語法結構是相同的。html

https://dev.mysql.com/doc/refman/5.7/en/join.htmlmysql

瞭解了基本的概念後,咱們來分析上述 join clause。laravel

$couser = Company::find(1);

首先咱們查詢出了 $cosuer(公司信息)對象。sql

而後經過該 對象聯表查詢下屬公司(分部)閉包

這裏用先前查詢出來的結果 $cosuer 調用 join 方法,將關聯的表傳遞進來,而後經過閉包定義一個 $join 作爲咱們要在閉包語句中調用執行的對象,用 use 語法結構 將所須要的變量傳遞到閉包使用,剩下的就是基本的聯表查詢語句。code

相關文章
相關標籤/搜索