mysql - 具有相同 ID 的 2 个表的内部连接

标签 mysql sql join inner-join

我有一个表(T1),其中 2 列(XY)是 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.XT1.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/

相关文章:

javascript - 使用 javascript 使用与第一个相同的值填充第二个下拉框?

sql - 在 postgres 中使用 "IN()"更新多行时是否有可能出现死锁?

sql - Apache Pig 中是否有等同于多个 COUNT(DISTINCT CASE WHEN ...) 语句的语句?

mysql 3 表连接与更新

mysql - SELECT subCategory 等于parentCategory = 外部表中的值

mysql - Perl、子项和共享数据

mysql时差查询

mysql - 如何修复计算不准确的移动平均线的 SQL 查询

apache-spark - Spark : Prevent shuffle/exchange when joining two identically partitioned dataframes

MySQL 使用具有多个返回行的子查询更新字段值