0

複数の列を持つ1つのテーブルのみがあるとしましょう。まあ言ってみれば:

Fruits
--------------------------------------
id  | name        | country
--------------------------------------
1   | Banana      | china
2   | Orange      | japan
3   | Apple       | japan
4   | Apple       | china
5   | Banana      | usa
6   | Orange      | china

次に、SELECTすべての Fruits whereへの単純なクエリid < 6
それは:

SELECT * FROM fruits WHERE id < 6

その後、次のように返されます。

--------------------------------------
id  | name        | country
--------------------------------------
1   | Banana      | china
2   | Orange      | japan
3   | Apple       | japan
4   | Apple       | china
5   | Banana      | usa

次に、上記のクエリを追加して、さらに何かを除外するにはどうすればよいですか。
例えば:

Do NOT want to see, any "APPLE" from "CHINA".

したがって、最終結果は次のようになります。

--------------------------------------
id  | name        | country
--------------------------------------
1   | Banana      | china
2   | Orange      | japan
3   | Apple       | japan
5   | Banana      | usa

これはまた一緒withoutにいる列if, name='Apple' AND country='china'です!.

  • 最初のクエリを続けて、追加の " AND 条件ペア" を追加してこの結果を得るにはどうすればよいでしょうか?

私はこう言います:

SELECT * FROM fruits WHERE id < 6 ... AND DON'T RETURN this condition where name='Apple' and country='china' TOGETHER
4

2 に答える 2

2

Try:

SELECT * 
FROM fruits 
WHERE (id < 6)
AND NOT (name = 'Apple' AND country = 'china')

Or:

SELECT * 
FROM fruits 
WHERE (id < 6)
AND id NOT IN (SELECT id 
               FROM fruits
               WHERE name = 'Apple'
               AND country = 'china')
于 2013-04-22T11:02:42.723 に答える
1

try this

 SELECT * FROM fruits WHERE 
                 (name ,country) not in ( select 'Apple' ,'china' from Fruits)

 HAVING id < 6

DEMO HERE

于 2013-04-22T11:02:30.580 に答える