我有一张 table 供 worker 使用,另一张 table 供办公室使用。一名员工可以在不同的办公室或任何办公室。
表格如下:
**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(如果该 worker 存在的话)。
另一件与问题无关的事情是使用表的单数名称,您可以在这个 SO answer 中阅读更多相关信息。
关于mysql - 连接不同尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44851957/