我正在尝试在三个表之间进行联接,其中一个表中不能包含进行联接的信息。
这是我的桌子:
会议
- id
- 文档_id
- 动机
人员
- id
- 名称
- 姓
同伴
- id
- meeting_id
- 名称
- 姓
现在我想恢复Meetings.docent_id=Persons.id的信息(这是可以的(,我还想恢复Meedings.id=Companions.meeting_id的信息,如果添加此条件,我会收到错误。
问题是,最后一个条件并不总是存在,因为用户可以决定他是否想要同伴(因此,如果用户不想要,则不会将其写入同伴表(,因此可能是某些Meetings.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')
确保您有where的完全限定列名(可能是在两个连接的表中有相同的列名(