SQL:如何从同一张表中选择两个ID作为两个名称?

塞布

我是SQL的新手,正在尝试获取联接和引用的句柄。

数据库如下所示:

玩家们

 id | name
----+-------
  1 | john
  2 | tim
  3 | frank
  4 | tony
  5 | mark

火柴

 id | winner | loser
----+--------+-------
  1 |      2 |     4
  2 |      3 |     4
  3 |      4 |     5
  4 |      1 |     4

我想得到这个结果:

 id | winner | loser
----+--------+-------
  1 |    tim |  tony
  2 |  frank |  tony
  3 |   tony |  mark
  4 |   john |  tony

到目前为止,我可以做到这一点:

select matches.id, players.name as winner, players.name as loser
  from matches, players 
  where winner = players.id;

但是,如果我添加and loser = players.id,它不返回任何行。

我也尝试过这个:

select matches.id, players.name as winner, players.name as loser
  from matches
  join players on matches.winner = players.id
  join players on matches.loser = players.id;

产生ERROR: table name "players" specified more than once

我已经在Google上搜索了一个小时,可以找到很多案件,这些案件几乎可以满足我的要求,但是我仍然不知道如何用同一张表中的两个名称替换两个ID。

蒂姆3880

您几乎在那里:

select matches.id, w.name as winner, l.name as loser
 from matches
 join players w on matches.winner = w.id
 join players l on matches.loser = l.id;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MYSQL:通过同一张表中的两个外键选择

来自分类Dev

sql比较同一张表中的两个唯一行

来自分类Dev

如何在Postgresql中将两个选择查询水平组合在同一张表上?

来自分类Dev

在同一张表上合并两个SQL SELECT语句

来自分类Dev

如何从orientDB的同一张表中检索两个不同边的数据?

来自分类Dev

如何合并同一张表中的两个hasMany关系?

来自分类Dev

使用两个WHERE条件从同一张表中两次选择一列SQL SERVER

来自分类Dev

同一张图中的两个图形表示

来自分类Dev

为什么我在同一张表中的两个日期之间选择不起作用?

来自分类Dev

SQL从两个表中选择

来自分类Dev

同一张表中的两个一对多关系

来自分类Dev

左是否基于两个不同的字段联接同一张表?

来自分类Dev

在cakephp 3中用两个外键链接同一张表

来自分类Dev

根据同一张表中的两个键获取记录数组

来自分类Dev

这两个按钮在csv中打开同一张表有问题吗?

来自分类Dev

从同一张表中获得两个值

来自分类Dev

左是否基于两个不同的字段联接同一张表?

来自分类Dev

从同一张表中提取两个查询

来自分类Dev

两个datagridviews绑定到同一张表。刷新无效

来自分类Dev

同一张表中的两个不同数据

来自分类Dev

同一张表上的两个主键和外键

来自分类Dev

根据同一张表中的两个键获取记录数组

来自分类Dev

如何首先使用mvc 5和EntityFramework代码将两个属性映射到同一张表?

来自分类Dev

EF 6如何将两个外键设置到同一张表

来自分类Dev

如何从两个SQL表中选择

来自分类Dev

如何从两个表SQL Server中选择列

来自分类Dev

如何使用 tensorboardX 在同一张图表上获得两个标量?

来自分类Dev

SQL从同一表中选择两个最大行,并与第三个表连接

来自分类Dev

SQL从同一表中选择两个最大行,并与第三个表联接

Related 相关文章

  1. 1

    MYSQL:通过同一张表中的两个外键选择

  2. 2

    sql比较同一张表中的两个唯一行

  3. 3

    如何在Postgresql中将两个选择查询水平组合在同一张表上?

  4. 4

    在同一张表上合并两个SQL SELECT语句

  5. 5

    如何从orientDB的同一张表中检索两个不同边的数据?

  6. 6

    如何合并同一张表中的两个hasMany关系?

  7. 7

    使用两个WHERE条件从同一张表中两次选择一列SQL SERVER

  8. 8

    同一张图中的两个图形表示

  9. 9

    为什么我在同一张表中的两个日期之间选择不起作用?

  10. 10

    SQL从两个表中选择

  11. 11

    同一张表中的两个一对多关系

  12. 12

    左是否基于两个不同的字段联接同一张表?

  13. 13

    在cakephp 3中用两个外键链接同一张表

  14. 14

    根据同一张表中的两个键获取记录数组

  15. 15

    这两个按钮在csv中打开同一张表有问题吗?

  16. 16

    从同一张表中获得两个值

  17. 17

    左是否基于两个不同的字段联接同一张表?

  18. 18

    从同一张表中提取两个查询

  19. 19

    两个datagridviews绑定到同一张表。刷新无效

  20. 20

    同一张表中的两个不同数据

  21. 21

    同一张表上的两个主键和外键

  22. 22

    根据同一张表中的两个键获取记录数组

  23. 23

    如何首先使用mvc 5和EntityFramework代码将两个属性映射到同一张表?

  24. 24

    EF 6如何将两个外键设置到同一张表

  25. 25

    如何从两个SQL表中选择

  26. 26

    如何从两个表SQL Server中选择列

  27. 27

    如何使用 tensorboardX 在同一张图表上获得两个标量?

  28. 28

    SQL从同一表中选择两个最大行,并与第三个表连接

  29. 29

    SQL从同一表中选择两个最大行,并与第三个表联接

热门标签

归档