私はこのようなテーブルを持っています
Table
-----
userid
fieldid
fieldvalue
ここで、useridとfieldidは、このテーブルの主キーのペアです。
fieldvalue
選択したものに等しいものを持つすべてのユーザーを検索するSQLクエリを作成したいfieldid
たとえば、値の場合
fieldid: 817
fieldvalue: 'yes'
私は次のようなSQLクエリを持つことができます:
select userid FROM table where (fieldid=817 AND fieldvalue='yes')
このクエリは正常に機能します。
ただし、2番目または3番目の基準がある場合は、次のようにクエリを実行します。
select userid
FROM table
where (fieldid=817 AND fieldvalue='yes')
AND (fieldid=818 AND fieldvalue='no')
空の結果を返しますが、個々の基準で条件が満たされています。
これを修正する方法はありますか?
アップデート
ユースケースを書き留めるのを忘れました(謝罪)
userid, fieldid, fieldvalue
1 , 817, yes
1, 818, no
1, 825, yes
2, 817, yes
2, 818, yes
3, 829, no
このテーブルでは、次の条件を満たすユーザーを検索するSQLクエリが必要です。fieldid817の値はyesで、fieldid818の値はnoです。
ORの提案を使用して、これまでのところ、フィールドID 817の値がyesであるか、フィールドID818の値がnoであるかを満たしていました。
両方の条件を満たしてほしい。上記では、期待される結果は次のようになります
userid
1
ではなく
userid
1
2
ユーザーID2は両方の条件を満たさないため。混乱をお詫び申し上げます。