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