我有一张桌子供工人使用,另一张桌子供办公室使用。一个工人可以在不同的办公室,也可以在任何办公室。
表格如下:
**Workers**
ID | Name
1 | Ned
2 | James
3 | Tyrion
**WorkersOffices**
WorkerID | OfficeID
1 | 18
1 | 17
2 | 18
我想加入两个表以获得类似的信息:
**Joined**
ID | Name | OfficeID
1 | Ned | 18
1 | Ned | 17
2 | James | 18
3 | Tyrion |
我尝试了以下方法,但它只加入一个办公室供工人使用。
SELECT * FROM workers w
LEFT JOIN workersoffice wo on w.id = wo.workerid
如何获得此结果?
最佳答案
您必须为此使用LEFT JOIN:
SELECT * FROM workers w
LEFT JOIN workers_office wo on w.id = wo.worker_id
如果该工作程序存在,它将基本上从
workers
表中获取所有行并加入office。另一个与问题无关的要提及的是使用表的单数名称,您可以在此SO answer中了解更多信息。