2

列number、arrival_station、depart_stationを持つtrainというテーブルがあります

これにデータを入力し、エジンバラのみにサービスを提供する列車を検索したい (つまり、駅から出発するすべての列車はエジンバラにのみ到着する) ネストされたクエリを使用し、存在しない演算子を使用したいと考えています。

これまでのところ私は試しました..

SELECT depart_station
FROM train
WHERE arrive_station = "edinburgh" 
  AND NOT EXISTS
  (
    SELECT arrive_station
    FROM train
    WHERE arrive_station != "edinburgh"
  );
4

5 に答える 5

4

ネストされたクエリを何らかの形で外部クエリに関連付ける必要があるため、 number が列車番号の場合は、テーブルにエイリアスを追加してAND t1.number = t2.number.

SELECT  depart_station
FROM    train t1
WHERE   arrive_station = "edinburgh" 
AND     NOT EXISTS
        (
            SELECT  arrive_station
            FROM    train t2
            WHERE   t2.arrive_station != "edinburgh"
            AND     t1.number = t2.number
        );
于 2013-05-02T15:40:29.150 に答える
1

存在する演算子を使用する必要があるのはなぜですか? 確かに OR で十分です。

select *
from train
where depart_station = 'Edinburgh' or arrive_station = 'Edinburgh';

?

于 2013-05-02T15:36:36.980 に答える