从MySQL

时间:2016-09-14 00:59:50

标签: mysql

我有一个联系表,用于连接用户的计划(第1,2,3周等)。连接表中的每周都有两个独立用户的ID,用户A和用户B.但每周还有多行。所以它看起来像这样:

日程表:

-----------------------------------
| week_id |  userA_id  | userB_id |
-----------------------------------
|    1    |     1      |   2      |   
|    1    |     2      |   3      |
----------------------------------

我还有一个用户表,用于存储有关用户的所有信息,非常基本的东西。所以,例如:

用户表:

-----------------------------------
|    id   |    Name    | Nickname |
-----------------------------------
|    1    |    jason   |   jay    |   
|    2    |    billy   |   bill   |
----------------------------------

我想要做的是根据周ID查询我的计划表,然后返回每周的一系列用户。例如,从第1周的一系列对象中给我所有用户,例如[{UserA.name:jason,UserB.name:billy},{UserA.name:billy,UserB.name:jane}],等

我有一种潜在的怀疑,即这将包括多个JOIN语句,但我似乎无法使其正常工作。有谁知道如何构造这个MySQL语句?

1 个答案:

答案 0 :(得分:0)

此处的一个选项是将Schedule表两次加入User表,为关系中的每个用户加一个连接。

SELECT u1.Name,
       u2.Name
FROM Schedule s
INNER JOIN User u1
    ON s.userA_id = u1.id
INNER JOIN User u2
    ON s.userB_id = u2.id
WHERE s.week_id = 1