[英]Codeigniter: Join between three tables
我正在嘗試在三個表之間進行聯接,其中一個表中不能包含進行聯接的信息。
這是我的桌子:
會議
人
同伴
現在我想恢復 Meetings.docent_id = Persons.id 的信息(這沒關系),我還想恢復 Meetings.id = Companions.meeting_id 的信息,如果我添加這個條件,我會收到一個錯誤。
問題是最后一個條件並不總是存在,因為用戶可以決定他是否想要同伴,(所以如果它不想要它,它們不會被寫入同伴表)所以可能是一些會議.id 在 Companions.meeting_id 中沒有對應關系。
我試過這樣的代碼:
$query = $this->db->select('Meetings.*, Persons.name, Persons.surname, Companions.*')
->from('Meetings')
->join('Companions', 'Meetings.id = Companions.meeting_id', 'LEFT')
->join('Persons', 'Meetings.docent_id = Persons.id', 'INNER')
->where('delete_date is null')
//....
我認為它返回了 500 個錯誤,因為有些會議沒有同伴。 我怎樣才能獲得所有會議以及是否有同伴顯示它們?
謝謝你。
$query = $this->db->select('Meetings.*, Persons.name, Persons.surname, Companions.*')
->from('Meetings')
->join('Companions', 'Meetings.id = Companions.meeting_id', 'LEFT')
->join('Persons', 'Meetings.docent_id = Persons.id', 'INNER')
->where('Persons.delete_date is null')
確保您具有完全限定的列名(可能是您在連接的兩個表中具有相同的列名)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.