0

ORで結合された 2 つの条件の代わりに、SELECT コマンドまたはネストされた SELECT を使用するにはどうすればよいですか? たとえば、次を使用して、ネストされた 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  

(select コマンドのみ)。

しかし、OR を使用せずに OR 条件を達成するにはどうすればよいでしょうか?

SELECT name FROM students WHERE age > 25 OR grade > C
4

1 に答える 1

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

于 2011-05-06T23:28:09.990 に答える