2 回答

TA貢獻1795條經驗 獲得超7個贊
兩種情況的結果相同。他們只是使用相同的屬性,因此雄辯的結果相互覆蓋。使用別名來解決問題
SELECT status, contacts.name as contact_name, contacts.telephone_number, companies.name as company_name, roles.name as role_name , stages.description, actions.description FROM entries JOIN contacts ON entries.contact_id = contacts.id JOIN companies ON contacts.id = companies.contact_id JOIN roles ON companies.id = roles.company_id JOIN stages ON roles.id = stages.role_id JOIN actions ON stages.id = actions.stage_id

TA貢獻1773條經驗 獲得超3個贊
您應該設置別名以避免覆蓋。另一件事是,如果你使用 Laravel,那么 eloquent 就是你的朋友:
$entries = DB::table('entries')
->join('contacts', 'entries.contact_id', '=', 'contacts.id')
->join('companies', 'contacts.id', '=', 'companies.contact_id')
->join('roles', 'companies.id', '=', 'roles.company_id')
->join('stages', 'roles.id', '=', 'stages.role_id')
->join('actions', 'stages.id', '=', 'actions.stage_id')
->select('status', 'contacts.name AS contact_name', 'contacts.telephone_number', 'companies.name AS company_name', 'roles.name AS role_name', 'stages.description AS stage_description', 'actions.description AS action_description')
->get();
更好的方法是使用模型和集合關系。
- 2 回答
- 0 關注
- 148 瀏覽
添加回答
舉報