id player_id nat nt_caps
13740 28664 97 24
13741 28664 68 0
13742 28664 79 0
16252 42904 15 40
16253 42904 68 0
16254 42904 241 0
これは私のテーブルの外観です。 nat_caps = "0"のnat_caps!= "0"を持つすべてのnatまたはplayer_idに対してnat_caps = "68"のplayer_idを選択します。他の行の類似または反対のデータに基づいて1つの行を選択するにはどうすればよいですか?
私が使用しようとするSQLクエリは次のとおりです。
SELECT player_id FROM x WHERE nat = '68' AND (nat != '68' AND nt_caps = '0')
しかし、彼らの両方がクエリに一致するが、私はそれらをのでしたくない1つのエントリを持っているので、私はplayer_id「42904」と「28664」を取得彼らはnat "68"よりも別のnatのためにnt_capsを持っています。
私が達成しようとしていることを理解していただければ幸いです。
あなたはこのORことをしたい場合は、なぜあなたが使用していますか? –
私には混乱するように聞こえます。しかし、私は理解しているように、最初のANDをORに変更すると、クエリはOKに戻ります。 – itachi
'nt_caps'にNULL値がありますか? –