我有三桌产品
ID name
1 A
2 B
3 C
小贩
ID Name
1 V1
2 V2
3 V3
产品供应商
ID pid vid
1 1 1
2 1 2
3 2 3
4 3 1
5 3 2
6 3 3
我想要左连接并创建如下表所示的响应
p_id product vendors
1 A V1,V2
2 B V3
3 C V1,V2,V3
下面是我的解决方案,但它相当复杂。有没有可能对此进行简短的查询
SELECT GROUP_CONCAT(v2.`name`) AS vendername,
p.*,
GROUP_CONCAT(v.`v_id`) AS vi
FROM `products` p
JOIN `product_vendor` v ON p.id = v.p_id,
`vendors` v2
WHERE v2.id IN
(SELECT GROUP_CONCAT(p.`id`) AS vi
FROM `vendors` p
JOIN `product_vendor` v ON p.id = v.p_id
GROUP BY p.id)
GROUP BY p.id
ORDER BY `p_id` ASC
2条答案
按热度按时间vdzxcuhz1#
你能试试这个吗,我还没有执行查询,但我认为它会有帮助:
要列出产品表中的所有记录,请使用:
qni6mghb2#
只要用连接和
group_concat
不需要子查询演示