有谁能告诉我这个查询有什么问题?此代码无效:
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';
答案 0 :(得分:3)
你失败了,因为这一年(可能)从来都不是2012年和2013年。
并且是一个独占运算符,意味着两个条件必须正确才能使语句评估为真。
OR表示一个,或另一个,或两者
答案 1 :(得分:2)
如果我理解正确,您希望获得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
答案 2 :(得分:0)
and
和or
之间存在差异。
您可以从不同时拥有2012年和2013年,但2012年或2013年可能会下降一年。
这就是为什么你的第一个SQL查询没有结果,而第二个SQL查询没有结果。