我有两个表: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');
但它错误地合并了信息。
答案 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;