我JOIN
在 MySQL 中遇到了一个简单的错误。我错过了一些明显的东西吗?
SELECT stop_times.stop_sequence
FROM stop_times
INNER JOIN stops ON stop_times.stop_id = stops.stop_id
INNER JOIN trips ON stop_times.trip_id = trips.trip_id
WHERE stops.stop_code = :stopCode;
哪里:stopCode
是通过 PDO 绑定的参数。
我得到的错误是:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'stop_times.trip_id' in 'on clause''
这三个表的数据库架构是:
stop_times
----------
trip_id VARCHAR(23) NOT NULL -- PK
arrival_time TIME NOT NULL
departure_time TIME NOT NULL
stop_id INT(10) UNSIGNED NOT NULL -- PK
stop_sequence INT(10) UNSIGNED NOT NULL -- PK
stops
-----
stop_id INT(10) UNSIGNED NOT NULL -- PK
stop_code INT(5) UNSIGNED NULL
stop_name VARCHAR(53) NOT NULL
stop_lat DECIMAL(8, 6) NOT NULL
stop_lon DECIMAL(9, 6) NOT NULL
stop_url VARCHAR(66) NULL
trips
-----
route_id INT(8) UNSIGNED NOT NULL
service_id VARCHAR(6) NOT NULL
trip_id VARCHAR(23) NOT NULL -- PK
trip_headsign VARCHAR(255) NOT NULL
我也尝试过使用别名,但没有奏效。在 Microsoft Access 中运行查询有效,但生成的 SQL 在 JOIN 语句周围有括号。
为什么我的查询不起作用?