Brayden
Brayden

Reputation: 1795

Data Between Two Tables

Excuse any novice jibberish I may use to explain my conundrum but hopefully someone here will be able to look past that and provide me with an answer to get me unstuck.

SESSIONS

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

USERS

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

For each session in the Sessions table that has an appID of 1, I want to get the users name from the Users table. The Sessions userID column is linked with the Users tables id column.

So my desired result would be:

["Bob", "Beth"]

Any suggestions/help?

Upvotes: 1

Views: 32

Answers (3)

daleonpz
daleonpz

Reputation: 581

You need to create a join table (http://www.tutorialspoint.com/postgresql/postgresql_using_joins.htm) and then request the data using the equal operator.

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

Upvotes: -1

Matt
Matt

Reputation: 1757

try this:

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

I would read up on http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ for how all the joins work.

Upvotes: 2

Max Uland
Max Uland

Reputation: 87

It looks like you forgot to post your code.

But in explanation.... It seems like you can just select the userID from the sessions table and then simply join the users table. Then create a WHERE clause to select all users that are attached to that ID.

Hope it helps. If you post your code I can probably help you out more and if this doesnt seem just right lemme know and ill help you how i can

Upvotes: 0

Related Questions