簡體   English   中英

聯接一個表,其中另一列中的兩列為id

[英]JOIN one tables where two columns are id in other table

首先,任何改善我的題目的建議都值得歡迎。 這是我的解釋。

我有兩張桌子。 一個是航班,另一個是機場。

flights
-------------------------------------------------------------------
id | departure_id | destination_id | departure_date | arrival_date
-------------------------------------------------------------------
1  |1             | 5              | 2014-05-01     | 2014-05-01
-------------------------------------------------------------------

airports
-----------------------------------
id | country_id | name | timezone |
-----------------------------------
1  | 1          | TPE  | +08:00   |
-----------------------------------
5  | 2          | HND  | +09:00   |
----------------------------------- 

我需要這個結果:

-----------------------------------------------------------
departure_date | departure_tz | arrival_date | arrival_tz |
-----------------------------------------------------------
2014-05-01     | +08:00       | 2014-05-01   | +09:00   |
-----------------------------------------------------------

我有這個查詢,但沒有給我想要的結果,因為我沒有如何在table aiports之間建立destination_id,department_id之間的關系,它們都在airports表中,請提出任何建議。 這是我要查詢的查詢,但在時區之間沒有任何區別,時區是我最想顯示的信息。

SELECT flights.flight_number,
  flights.departure_date,
  airports.timezone as departure_tz,
  flights.arrival_date,
  airports.timezone as arrival_tz
FROM flights
JOIN airports
SELECT flights.flight_number,
flights.departure_date,
A1.timezone as departure_tz,
flights.arrival_date,
A2.timezone as arrival_tz
FROM (flights JOIN airports as A1 ON flights.departure_id=A1.id)
JOIN airports as A2 on flights.departure_id=A2.id  

ON其中來自您的查詢,也缺少只要你想從機場到加入兩個單獨的行你需要使用該表的兩個實例。

SELECT flights.flight_number,
  flights.departure_date,
  dep.timezone as departure_tz,
  flights.arrival_date,
  arvl.timezone as arrival_tz
FROM flights
LEFT JOIN airports dep
ON flights.departure_id = dep.id
LEFT JOIN airports arvl
ON flights.destination_id = arvl.id

也許2加入?

SELECT 
t1.id AS flight_number 
t1.departure_date,
t2.timezone AS departure_tz 
t1.arrival_date
t3.timezone AS arrival_tz
FROM flights t1
LEFT JOIN airports t2
ON t1.departure_id = t2.id
LEFT JOIN airports t3
ON t1.arrival_id = t3.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM