我有一个表(T1
),其中 2 列(X
和 Y
)是 id。这些对应的 id
的名称在另一个表 (T2
) 中,列为 name
。
假设我当时只使用 X
,一个简单的内部连接就可以解决我获取名称的问题。
比如
Select T1.somedata,T1.somedata1,T2.name from T1
Inner Join T2 ON T1.X=T2.id
但是,如果我还想为 T1.Y
解析名称怎么办?Inner Join 会将其解析为哪个 name
??
Select T1.somedata,T1.somedata1,T2.name from T1
Inner Join T2 ON T1.X=T2.id
Inner Join T2 ON T1.Y=T2.id
上面的查询是错误的,我知道。我可以使用 INNER Join
获取与 T1.X
和 T1.Y
对应的那些的 name
?
-初学者
最佳答案
我建议始终为表和列添加别名。这样您就可以确定选择了哪些数据。
select
T1.somedata,
T1.somedata1,
T2X.name as XName,
T2Y.name as YName
from T1 as T1
inner join T2 as T2X on T2X.id = T1.X
inner join T2 as T2Y on T2Y.id = T1.Y
关于mysql - 具有相同 ID 的 2 个表的内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13082272/