分かりやすいタイトルが思いつかなくてすみません。
複合キー --> ID と属性を持つ 2 列のテーブルがあります。そのため、ID がテーブルに 2 回表示される場合がありますが、各インスタンスには異なる属性があります。
id attribute
1 1
1 2
2 2
3 1
私の質問は、これを照会する方法です。たとえば、2 つの属性に一致するすべての ID を検索したい
SELECT a.id
FROM table AS a, table AS b
WHERE a.attribute = 1
AND b.attribute = 2
AND a.id = b.id
したがって、このクエリは id 1 のみを返す必要があります。
SQL を動的に作成することはおそらく可能ですが、事前に検索する属性の数を知る必要があるため、これは非常に厳格です。
このようなテーブルをクエリするより良い方法はありますか? そもそもこのテーブルを構造化するより良い方法はありますか?
助けてくれてありがとう。