如何使用SELECT命令或嵌套SELECT而不是两个与 OR 相结合的条件?我知道您可以使用嵌套的SELECT语句实现 AND ,例如:
select name from (select * from students where grade > C) where age > 25
-- select name from (select * from students where grade > C) as std1 where age > 25
而不是:
select name from students where age > 25 and grade > C
(仅限选择命令)。
但是如何在不使用OR的情况下实现OR条件?
SELECT name FROM students WHERE age > 25 OR grade > C
答案 0 :(得分:2)
应用OR
会导致超集,而不是子集,因此通过将过滤器应用于嵌套查询,您无法获得相同的结果。
您可以使用UNION
:
SELECT *
FROM students
WHERE age > 25
UNION
SELECT *
FROM students
WHERE grade > C
与
相同SELECT *
FROM students
WHERE age > 25 OR grade > C
,前提是PRIMARY KEY
上定义了students
。