簡體   English   中英

Codeigniter:三表之間的聯接

[英]Codeigniter: Join between three tables

我正在嘗試在三個表之間進行聯接,其中一個表中不能包含進行聯接的信息。

這是我的桌子:

會議

  • ID
  • docent_id
  • 動機

  • ID
  • 姓名

同伴

  • ID
  • 會議編號
  • 姓名

現在我想恢復 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM