SQL:如何从一个表中选择另一个表中的不同值?

标签 sql sql-server

我有两张 table

表“Teams”有两列

teamID,
teamName

表“匹配”有三列

matchID, 
teamID_1,
teamID_2

...如下图所示:

如何构造一个 select 语句,该语句将通过 Teams.teamName 拉取 Match.teamID_1Match.teamID_2基于他们各自的ID?

我只能对一列或另一列执行此操作,但不能同时对两列执行此操作:

SELECT Match.matchID, Teams.teamName
    FROM Match
    INNER JOIN Teams ON Match.teamID_1 = Teams.teamID

或者

SELECT Match.matchID, Teams.teamName
    FROM Match
    INNER JOIN Teams ON Match.teamID_2 = Teams.teamID

最佳答案

您可以多次加入同一个表。只需为它们添加别名(t1t2 如下所示):

SELECT 
    Match.matchID, 
    t1.teamName, 
    t2.teamName
FROM Match
    INNER JOIN Teams t1 ON Match.teamID_1 = t1.teamID
    INNER JOIN Teams t2 ON Match.teamID_2 = t2.teamID

关于SQL:如何从一个表中选择另一个表中的不同值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597953/

相关文章:

SQL 货币格式

sql-server - 从 SqlDataAdapter 后台填充 DataGridView

使用 desc 后 SQL Server 倒序

sql - mysql 中的排名

mysql - 从表中删除前 10 条记录

sql - 如何在跨度超过一年的日期范围内每周选择一行?

sql - 在哪里可以找到有关 SQL 锁定和事务策略的很好的介绍

python - 在 SQLAlchemy 中,列属性上的 group_by 在 1.0.0b1 中不再有效

sql - 计算两个相同表的匹配行和计算表的行数

sql - 用同一表中另一列的数据填充列