我有一张桌子供工人使用,另一张桌子供办公室使用。一个工人可以在不同的办公室,也可以在任何办公室。

表格如下:

**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中了解更多信息。

08-28 08:59