从同一查询中的同一列获取两个值

时间:2013-12-31 19:20:17

标签: php mysql sql optimization

我想知道如何从同一行的同一列中获取2个不同的值。我的意思是,我有我的桌上朋友,如下所示。

id | source | target
1    1        2
1    1        3

然后我有我的用户表,其中包含以下值

id | name
1    John
2    Will
3    Mark

我想知道哪些用户是朋友,例如,在第一种情况下,John和Will就是朋友。

2 个答案:

答案 0 :(得分:1)

您可能正在寻找的是将同一查找双重连接到单个驱动程序中:

SELECT
  src.name AS srcName,
  tgt.name AS targetName,
FROM
  friends
  INNER JOIN users AS src ON friends.source=src.id
  INNER JOIN users AS tgt ON friends.target=tgt.id
-- WHERE something?

答案 1 :(得分:0)

尝试以下sql查询

select u1.name,u2.name FROM friends as f
join users as u1 on f.source=u1.id
join users as u2 on f.Target=u2.id