以下のようなテーブルがあるとします。
row_id record_id tag_id
1 1 2
2 1 3
3 2 2
4 2 4
5 3 2
6 3 3
値 2 の tag_id を持つレコードを持っているが 3 を持っていない record_id を取得したいのですが、この場合、record_id 2 を取得したいと考えています。これを達成するためのより簡単で高速な方法はありますか? ありがとう。
編集:
私が得たSQL:
SELECT record_id
FROM table_A
WHERE record_id NOT IN (SELECT record_id
FROM table_A
WHERE record_id IN (SELECT record_id
FROM table_A
WHERE tag_id = 2)
AND tag_id =3)
AND record_id IN (SELECT record_id FROM table_A WHERE tag_id = 2) GROUP BY record_id
また、各 record_id には、1 から任意の数の tag_id 値を含めることができます。