sql查询,找到所有好的id和名称,有所有可能的标签使用sqlite

pw136qt2  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(410)

我有table:
标签
id:整数
名称:文本
商品
id:整数
名称:文本
货物标签
标记id:整数
货号:整数
唯一(标签号、商品号)
所以,我要问的是,我如何才能找到id和商品名称,所有标签分配。抱歉,这是个初级问题。我将感谢任何帮助;)

7vux5j2d

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 也不会有重复的关系。

hmmo2u0o

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;

相关问题