3

私は現在、以下のようにSQLテーブル内のオブジェクトとタグの間に関係があるソフトウェアを使用しています。

+-----------+--------+
| object_id | tag_id |
+-----------+--------+
|       226 |     31 |
|       226 |     35 |
|       313 |     31 |
|       312 |     35 |
+-----------+--------+

次のリクエストでは、論理ORを使用してタグIDのリストのすべてのオブジェクトIDを取得できます。

select distinct object_id from tags_link where tag_id in (31, 35);

論理積を持つタグIDのリストのすべてのオブジェクトIDを取得するにはどうすればよいですか?

上記の表の場合、タグID 31および35のリクエストは、object_id226のみを返す必要があります。

4

2 に答える 2

5
select object_id
from tags_link
where tag_id in (31,35)
group by object_id
having count(distinct tag_id) = 2
于 2012-12-11T07:26:08.437 に答える
4
select   object_id from tags_link where tag_id = 31
intersect
select   object_id from tags_link where tag_id = 35
于 2012-12-11T07:29:42.590 に答える