2

我无法解决以下问题。

给定以下表结构和数据,我如何选择匹配两个标签的记录。例如:

+-----------------+------------------+
|  collection_id  |         tag      |
+-----------------+------------------+
|        1        |    advertising   |
|        1        |     tutorials    |
|        2        |    advertising   |
|        2        |       coding     |
+-----------------+------------------+

如果我搜索广告 && 教程,它应该返回collection_id= 1,而不是collection_id= 2。

任何指针最受欢迎。

4

1 回答 1

6
SELECT collection_ID
FROM tableName
WHERE tag IN ('advertising','tutorials')
GROUP BY collection_ID
HAVING COUNT(*) = 2

如果unique没有在每个标签上指定约束collection_ID

SELECT collection_ID
FROM tableName
WHERE tag IN ('advertising','tutorials')
GROUP BY collection_ID
HAVING COUNT(DISTINCT tag) = 2
于 2012-11-14T08:11:20.860 回答