Mysql选择查询 - 卡在哪里条件

时间:2014-06-29 06:39:06

标签: mysql select

我有两张桌子:

Users:
------------------------------
id | name
--------------------------
 1 | John
 2 | Dane
 3 | Foo
 4 | Bar

 Matches Table:
----------------------------
 id | userid1 | userid2
----------------------------
  1 |    1    |   3
  2 |    2    |   4

问题: 从id为1的匹配表,我想在一个查询中获取John和Foo。我怎么能这样做?

我已经有了一个解决方案,但它很无聊。这是从匹配表中选择记录然后在循环时触发查询以获取名称。

2 个答案:

答案 0 :(得分:4)

只需使用JOIN ...

SELECT u1.*, u2.*
FROM Matches m
    JOIN Users u1 ON u1.id = m.userid1
    JOIN Users u2 ON u2.id = m.userid2
WHERE m.id = [ YOUR DESIRED USER ID (for example: 1) ]

答案 1 :(得分:2)

SELECT name from Matches, Users where Matches.id = 1 AND (Users.id = Matches.userid1 OR Users.id = Matches.userid2)

这应该有用。