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'
有人可以帮忙吗?
答案 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;