【发布时间】:2018-10-24 11:45:48
【问题描述】:
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_where
这行得通:
SELECT
s.*,
(SELECT ProductName
FROM Products
WHERE SupplierID = s.SupplierID LIMIT 1) AS ProductNames
FROM
Suppliers s
我想用这样的东西:
SELECT
s.*,
GROUP_CONCAT(SELECT ProductName
FROM Products
WHERE SupplierID = s.SupplierID) AS ProductNames
FROM
Suppliers s
每行供应商的显示位置,即使 ProductNames 为空,但它会给出错误。
这样的事情可能吗?我知道 LEFT JOIN 也可以。
【问题讨论】:
-
这可能是个人喜好,但我严格避免在
SELECT子句中使用子查询,除非绝对重要。我认为LEFT JOIN将是一个更合适的解决方案。您是否已经知道如何使用LEFT JOIN编写查询? -
我的实际查询需要很多连接。通常我会使用很多内部连接,但即使连接中的项目不存在,我也希望它显示出来。所以我尝试将它们全部更改为左连接,但它无法正常工作。
-
您能否发布您的
LEFT JOIN查询的相关部分? -
我已将其添加到我的问题中
-
我已经添加了另一个尝试 - 它给出了一个错误