我有两个表,Customers
和 customerTowns
。我想将城镇名称存储在 customerTowns
中,并从存储在 Customers
townID
链接到它
|客户|
|城镇ID |
|customerTowns|
|城镇ID |
|城镇名称 |
我的sql如下,
SELECT townName, Customers.townID
FROM customerTowns
LEFT OUTER JOIN Customers
ON Customers.townID = customerTowns.townID
这几乎返回了我正在寻找的结果。除了,我希望为 customerTowns
中的每个条目重复 townID
。
|城镇名称 |城镇ID|
|伦敦|1 |
|伦敦|1 |
|伦敦|1 |
|伦敦|1 |
|伦敦|1 |
|曼彻斯特|NULL |
|利物浦 |NULL |
我觉得我一定很接近,只是不知道如何只返回一行,或者为什么返回多行!
我想要的输出是;
|城镇名称 |城镇ID|
|伦敦|1 |
|曼彻斯特|NULL |
|利物浦 |NULL |
最佳答案
使用 group by 或 distinct。
SELECT townName, Customers.townID
FROM customerTowns
LEFT OUTER JOIN Customers
ON Customers.townID = customerTowns.townID
GROUP BY townName, Customers.townID;
SELECT DISTINCT townName, Customers.townID
FROM customerTowns
LEFT OUTER JOIN Customers
ON Customers.townID = customerTowns.townID;
关于mysql - LEFT JOIN 表和右边不存在的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996886/