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

时间:2014-03-21 08:17:38

标签: mysql inner-join

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

我想获得Booking_id | source_city_name | destination_city_name作为结果。

我正在尝试这个:

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'

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您需要在查询中添加别名,这是因为您加入表table_bookings twice并选择*表名称不明确,因此您需要在联接后添加别名才能生成别名明确:

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;