我有table:标签id:整数名称:文本商品id:整数名称:文本货物标签标记id:整数货号:整数唯一(标签号、商品号)所以,我要问的是,我如何才能找到id和商品名称,所有标签分配。抱歉,这是个初级问题。我将感谢任何帮助;)
7vux5j2d1#
这里有一种方法:
SELECT g.id, g.name FROM GOODS g INNER JOIN TAGS_GOODS tg ON tg.goods_id = g.id GROUP BY g.id, g.name HAVING COUNT(*) = (SELECT COUNT(*) FROM TAGS);
这里的逻辑是按每个商品进行聚合,然后Assert该商品的记录数与可用标记的总数匹配。这个答案假设每个good和tag在其自己的表中是唯一的,并且连接表是唯一的 TAGS_GOODS 也不会有重复的关系。
TAGS_GOODS
hmmo2u0o2#
使用内部联接
SELECT goods.id, goods.name FROM goods INNER JOIN tags_goods ON goods.id=tags_goods INNER JOIN tags ON tags_goods.id=tags_id;
2条答案
按热度按时间7vux5j2d1#
这里有一种方法:
这里的逻辑是按每个商品进行聚合,然后Assert该商品的记录数与可用标记的总数匹配。这个答案假设每个good和tag在其自己的表中是唯一的,并且连接表是唯一的
TAGS_GOODS
也不会有重复的关系。hmmo2u0o2#
使用内部联接