mysql - SQL Join 2个表并得到各自的答案

标签 mysql sql database join

这是我的 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

最佳答案

您需要两个连接:

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;

注意使用表别名来区分两个表。这些还有助于更轻松地编写和读取查询。

关于mysql - SQL Join 2个表并得到各自的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51464723/

相关文章:

mysql 查询自动完成功能不起作用

sql - 针对每条记录从逗号分隔值中选择最小值/最大值

c# - 在 Entity Framework 和 SQL Server CE 中为实体对象生成整数标识主键

sql - Powershell脚本创建xml文件

database - 我应该怎么做才能通过并发 sqlite 3 访问来刷新数据

php不显示数据库结果

php - 如何使用 php 和 ssl 连接到 mysql 数据库?

mysql - 如何自动填充 sqlalchemy 列的值

php - MySQL 选择计数组

python - Django——如何从一组 "author"(用户)中过滤出一个 "authors"的对象?