这是我的SQL Fiddle
我有
这样的主表CREATE TABLE master (id int, name varchar(25), origin int, destination int);
INSERT INTO master (id, name, origin, destination) VALUES (1, 'Alpha', 1,2);
INSERT INTO master (id, name, origin, destination) VALUES (2, 'Beta', 3,4);
还有机场桌
CREATE TABLE airport (id int, name varchar(25));
INSERT INTO airport (id, name) VALUES (1, 'Chennai');
INSERT INTO airport (id, name) VALUES (2, 'Delhi');
INSERT INTO airport (id, name) VALUES (3, 'Goa');
INSERT INTO airport (id, name) VALUES (4, 'Mumbai');
我尝试使用
这样的SQL查询select master.id, master.name, master.origin,master.destination from master
INNER JOIN airport ON master.origin=airport.id
但是我只能得到这个答案
id name origin destination
1 Alpha 1 2
2 Beta 3 4
我怎么会这样
id name origin destination
1 Alpha Chennai Delhi
2 Beta Goa Mumbai
答案 0 :(得分:1)
您需要两个联接:
select m.id, m.name, ao.name as origin, ad.name as destination
from master m join
airport ao
on m.origin = ao.id join
airport ad
on m.destination = ad.id;
请注意使用表别名来区分两个表。这些也有助于简化查询的编写和读取。
答案 1 :(得分:0)
您可以尝试此查询,希望您能找到想要的答案。
查询:
SELECT master.id,
master.name,
master.destination AS destination,
(SELECT airport.name
FROM airport
WHERE airport.id = master.origin) AS origin,
(SELECT .airport.name
FROM airport
WHERE airport.id = master.destination) AS destination
FROM master