mysql - 如何在mysql中使用内部查询获取源城市和目的地城市名称

标签 mysql inner-join

table_cities - city_id, city_name
table_booking - booking_id, source_city_id, destination_city_id

我想获取 Booking_id |来源城市名称 |结果是目的地城市名称。

我正在尝试这个:

SELECT * FROM table_bookings
    INNER JOIN table_cities
        ON table_bookings.source_city_id = table_cities.city_id
    INNER JOIN table_cities
        ON table_bookings.destination_city_id = table_cities.city_id;

但它给出的不是唯一的表/别名:'table_cities'

有人可以帮忙吗?

最佳答案

您需要为查询添加别名,这是因为您两次加入表 table_bookings 并选择 * 表名称不明确,因此您需要添加加入后使用别名以使其清晰:

SELECT
         table_bookings.Booking_id,
         sourceCities.source_city_name,
         destinationCities.destination_city_name
    FROM table_bookings
    INNER JOIN table_cities AS sourceCities
        ON table_bookings.source_city_id = table_cities.city_id
    INNER JOIN table_cities AS destinationCities
        ON table_bookings.destination_city_id = table_cities.city_id;

关于mysql - 如何在mysql中使用内部查询获取源城市和目的地城市名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22553516/

相关文章:

php - 如何配置 .htaccess 以在有人访问该站点时运行 php 脚本?

sql - 查询具有相同列名的两个表的内部联接,字段列表中的列 'exName'不明确

php 表单不发布电子邮件和文本区域数据

mysql - 向表中添加或删除列会强制重新创建所有索引吗?

MySQL SELECT 两张表

mysql - 列出所有 'feeds' 且仅 2 个有关系的用户

MYSQL 更新 IF 子字符串存在于另一个表中内连接

mysql - 无法使用sequelize连接带有外键的2个表

mysql - 左连接以获取最新条目

php - 替换 mysql_real_escape_string() :