我正在尝试运行以下查询:
SELECT `aalv_test`.`aircraft`.*, `aalv_test`.`airports`.*, `aalv_test`.`bids`.*
FROM `bids`
LEFT JOIN `aalv_test`.`pilots` ON `bids`.`pid` = `pilots`.`id`
LEFT JOIN `aalv_test`.`schedules` ON `bids`.`fid` = `schedules`.`id`
LEFT JOIN `aalv_test`.`aircraft` ON `schedules`.`aircraft` = `aircraft`.`id`
LEFT JOIN `aalv_test`.`airports` AS `arr` ON `schedules`.`arricao` = `arr`.`icao`
LEFT JOIN `aalv_test`.`airports` AS `dep` ON `schedules`.`depicao` = `dep`.`icao`
WHERE `pilots`.`id` = 419
然而,
MYSQL返回错误#1051 - 表airports
不存在。
我不知道问题是什么,谷歌没有帮助。有任何想法吗?此外,如果我只使用一个别名,我只有一个机场,但我需要两个。并且数据仅在表airports
中,根据此查询,该表不存在。此外,如果我尝试在SELECT子句中抛出AS部分,我会收到错误1064:AS附近的语法错误。
编辑:数据库名称为aalv_test
,最后的。*指定使用表中的所有字段,中间部分是表名,是的我链接字段。
答案 0 :(得分:1)
试试这个:
SELECT a.*, arr.*, dep.*, b.*
FROM bids AS b
LEFT JOIN aalv_test.pilots AS p ON b.pid = p.id
LEFT JOIN aalv_test.schedules AS s ON b.fid = s.id
LEFT JOIN aalv_test.aircraft AS a ON s.aircraft = a.id
LEFT JOIN aalv_test.airports AS arr ON s.arricao = arr.icao
LEFT JOIN aalv_test.airports AS dep ON s.depicao = dep.icao
WHERE p.id = 419;