我有一个查询可以获取所有产品名称并将名称连接到1列。但我无法弄清楚如何让它发挥作用。这是查询。
SELECT package_id,
GROUP_CONCAT
(
SELECT c.product_name FROM tbl_product c WHERE c.product_id IN
(
SELECT a.product_id FROM tbl_package_detail a WHERE a.package_id = b.package_id
)
ORDER BY c.product_id
)
FROM tbl_package b
GROUP BY package_id
请注意:
SELECT c.product_name FROM tbl_product c WHERE c.product_id IN
(
SELECT a.product_id FROM tbl_package_detail a WHERE a.package_id = b.package_id
)
ORDER BY c.product_id
返回我需要的所有产品名称。我不确定我是否正确使用GROUP_CONCAT
。
错误消息:
您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以便在“SELECT c.product_name FROM tbl_product c WHERE c.product_id IN
”附近使用正确的语法
答案 0 :(得分:1)
尝试以下
SELECT
b.package_id,
GROUP_CONCAT(c.product_name ORDER BY c.product_id) ProductList
FROM tbl_package b
LEFT JOIN tbl_package_detail a ON a.package_id = b.package_id
LEFT JOIN tbl_product c ON c.product_id=a.product_id
GROUP BY b.package_id
GROUP_CONCAT
是一个像SUM/AVG/MIN/MAX/COUNT
这样的聚合函数。