SELECT seller
FROM (SELECT
seller,
count(product) AS product_count
FROM seller_product
WHERE product IN (001, 002)
GROUP BY seller) AS seller_list
WHERE product_count = 2
SELECT seller.id,GROUP_CONCAT(goods.id) as goods_id FROM seller
LEFT JOIN goods ON(goods.id=seller.id)
GROUP BY seller.id
HAVING FIND_IN_SET(001,goods_id) AND FIND_IN_SET(002,goods_id)
此处假定,商家-商品 的关联在该表中是唯一的。
下述代码是伪代码,提供思路
尝试写了一下,找出既卖001又卖002的商家ID
或者多个
通过select获取商家id与商品id的关联数据。然后通过find_in_set过滤掉必须含有两个商品id的数据,就可以了。
感谢回答,不知道还有没有别的思路