-3

谁能告诉我这个查询有什么问题?此代码不起作用:

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';
4

3 回答 3

3

你失败了,因为这一年(可能)永远不会同时是 2012 年和 2013 年。

And 是一个排他运算符,这意味着两个条件都必须为真才能使语句评估为真。

OR 表示一个,或另一个,或两者

于 2013-03-07T07:07:25.990 回答
2

如果我对您的理解正确,您想获取index_noyear20122013.

这个问题通常被称为Relational Division.

SELECT  index_no 
FROM    test_record_tbl 
WHERE   year IN ('2012', '2013')
GROUP   BY index_no
HAVING  COUNT(DISTINCT year) = 2
于 2013-03-07T07:16:34.153 回答
0

and和之间有区别or

永远不能同时拥有 2012 年和 2013 年,但一年可以落在 2012 年或 2013 年。

这就是为什么您的第一个 SQL 查询没有结果,而第二个却没有结果。

于 2013-03-07T07:10:06.763 回答