このクエリの何が問題なのか誰か教えてもらえますか? このコードは機能していません:
SELECT index_no FROM test_record_tbl WHERE year='2012' and year='2013';
このコードは機能しています:
SELECT index_no FROM test_record_tbl WHERE year='2012' or year='2013';
年が(おそらく)2012年と2013年の両方になることは決してないため、失敗しています。
And は排他演算子です。つまり、ステートメントが true と評価されるには、両方の条件が TRUE である必要があります。
OR は一方、または他方、または両方を意味します
私の理解が正しければ、どのレコードが年とindex_no
に属しているかを取得したいと考えています。2012
2013
この問題はしばしば と呼ばれRelational Division
ます。
SELECT index_no
FROM test_record_tbl
WHERE year IN ('2012', '2013')
GROUP BY index_no
HAVING COUNT(DISTINCT year) = 2
と の間には違いがand
ありor
ます。
2012 年と 2013 年が同時に存在することはありませんが、1 つの年が 2012 年または 2013 年になる可能性があります。
そのため、最初の SQL クエリでは結果が得られませんでしたが、2 番目のクエリでは結果が得られました。