SQLite查询使用来自两个表的数据

时间:2014-11-29 05:46:37

标签: sqlite

我有两个表:stop_times和trip - 两个表共享trip_id。我想构建一个查询,以便我使用trip_id从两个表中提取信息,然后" filter"该信息基于第一个表格中的内容。

我想出了这个来获取我的信息而没有"过滤":

SELECT stop_times.trip_id, stop_times.arrival_time, trips.route_id
FROM stop_times, trips
WHERE stop_times.trip_id = trips.trip_id;

这很好用,但后来我尝试过滤"使用stop_id:

SELECT stop_times.trip_id, stop_times.arrival_time, trips.route_id
FROM stop_times, trips
WHERE stop_times.stop_id IN (SELECT stop_id 
                             FROM stop_times 
                             WHERE stop_id = '81');

但它错误地合并了信息。

1 个答案:

答案 0 :(得分:1)

为什么从第二个查询中删除WHERE stop_times.trip_id = trips.trip_id?这个可能有效。

SELECT stop_times.trip_id, stop_times.arrival_time, trips.route_id
FROM stop_times, trips
WHERE stop_times.trip_id = trips.trip_id
  AND stop_times.stop_id = 81;

但是你最好不要使用ANSI连接语法。

SELECT stop_times.trip_id, stop_times.arrival_time, trips.route_id
FROM stop_times
INNER JOIN trips ON stop_times.trip_id = trips.trip_id
WHERE stop_times.stop_id = 81;