mysql - 连接不同尺寸

标签 mysql left-join rows

我有一张 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/

相关文章:

r - 在矩阵中删除NA/NaN/Inf

php - Y 轴上的值不会在 morris javascript 中传递

mysql - 重新映射 MYSQL 中的行

sql - Redshift 左外连接忽略空值

r - R 中是否有一个函数可以删除给定特定内容的数千行?

mysql - 使用 pdo 获取行数

mysql - 如何构建分类投票数据库?

php - 使用 id 功能编辑产品页面

sql - LINQ 中的 JOIN 和 LEFT JOIN 等效项

php - 如何将以下 mysql 查询形成为 laravel 查询语法?