まず、信じられないほどあいまいで長い質問を許してください。完全な説明なしでクエリを要約する方法が本当にわかりません。
OK、次のような形式の単一の MySQL テーブルがあります
some_table
- ユーザーID
- some_key
- some_value
ユーザーごとに複数の行があると想像すると、次のようになります。
1 | skill | html
1 | skill | php
1 | foo | bar
2 | skill | html
3 | skill | php
4 | foo | bar
HTML をスキルとして挙げているすべてのユーザーを見つけたい場合は、次のように簡単に実行できます。
SELECT user_id
FROM some_table
WHERE some_key = 'skill' AND some_value='html'
GROUP BY user_id
簡単です。これにより、ユーザー ID の 1 と 2 が得られます。
HTMLまたはPHP をスキルとして挙げているすべてのユーザーを見つけたい場合は、次のようにします。
SELECT user_id
FROM some_table
WHERE (some_key = 'skill' AND some_value='html') OR (some_key = 'skill' AND some_value='php')
GROUP BY user_id
これにより、ID の 1、2、および 3 を使用できます。
今、私が苦労しているのは、同じテーブルをクエリする方法ですが、今回は「HTMLとPHP の両方をスキルとしてリストしたすべてのユーザーを教えてください」、つまりユーザー ID 1 だけを教えてください。
アドバイス、ガイダンス、またはドキュメントへのリンクは大歓迎です。
ありがとう。