两个表之间的数据

时间:2016-04-28 15:56:51

标签: mysql

请原谅我可能用来解释我的难题的任何新手乱语,但希望这里的某人能够看过去并给我一个让我解开的答案。

会话

+--------+---------+----------+
| id     | appID   | userID   |
+--------+---------+----------+
| 1      | 1       | 96       |
+--------+---------+----------+
| 2      | 2       | 97       |
+--------+---------+----------+
| 3      | 1       | 98       |
+--------+---------+----------+

用户

+--------+---------+
| id     | name    |
+--------+---------+
| 96     | Bob     |
+--------+---------+
| 97     | Tom     |
+--------+---------+
| 98     | Beth    |
+--------+---------+

对于appssions为1的Sessions表中的每个会话,我想从Users表中获取用户name。会话userID列与用户表id列相关联。

所以我想要的结果是:

["Bob", "Beth"]

有任何建议/帮助吗?

3 个答案:

答案 0 :(得分:2)

试试这个:

SELECT USERS.name FROM USERS INNER JOIN SESSIONS ON users.id = SESSIONS.userID WHERE SESSIONS.appID = 1

我会在http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/上阅读所有联接的工作方式。

答案 1 :(得分:0)

您似乎忘了发布代码。

但是在解释中......看起来您只需从sessions表中选择userID然后只需加入users表即可。然后创建一个WHERE子句以选择附加到该ID的所有用户。

希望它有所帮助。 如果你发布你的代码,我可以帮助你更多,如果这看起来不正确lemme知道和生病帮助你我怎么能

答案 2 :(得分:-1)

您需要创建一个连接表(http://www.tutorialspoint.com/postgresql/postgresql_using_joins.htm),然后使用相等的运算符请求数据。

SELECT USERS.name FROM USERS, SESSIONS WHERE SESSIONS.userID = USERS.ID ;