patternsqlMinor
Get result of joining multiple tables as one row
Viewed 0 times
resulttablesonegetmultiplerowjoining
Problem
I have these 2 tables:
If I want to get all the information about a user using his userid, I can simply join them using this:
which for USER_ID = 1 returns:
What I need is actually 1 unique row instead of multiple rows. Is it in any way possible to get something like this? (I haven't seen something to do it but am not sure)
table1:
id | name
---------
1 | john
2 | jack
table2:
id | profile_id | institution
-----------------------------
1 | 1 | SFU
2 | 1 | UBC
3 | 2 | BU
4 | 2 | USC
5 | 2 | SFUIf I want to get all the information about a user using his userid, I can simply join them using this:
select a.id, a.name, b.institution from table1 a, table2 b
where a.id = USER_ID and a.id = b.profile_idwhich for USER_ID = 1 returns:
id | name | institution
-----------------------
1 | john | SFU
1 | john | UBCWhat I need is actually 1 unique row instead of multiple rows. Is it in any way possible to get something like this? (I haven't seen something to do it but am not sure)
id | name | institution
-----------------------
1 | john | [SFU, UBC]Solution
You can use the GROUP_CONCAT function
or with your original query
Give it a Try !!!
SELECT a.id, a.name, CONCAT('[',GROUP_CONCAT(b.institution),']') institution
FROM table1 a INNER JOIN table2 b
ON a.id = b.profile_id
WHERE a.id = USER_ID
GROUP BY a.id, a.name;or with your original query
select a.id, a.name, CONCAT('[',GROUP_CONCAT(b.institution),']') institution
from table1 a, table2 b where a.id = USER_ID and a.id = b.profile_id
group by a.id, a.name;Give it a Try !!!
Code Snippets
SELECT a.id, a.name, CONCAT('[',GROUP_CONCAT(b.institution),']') institution
FROM table1 a INNER JOIN table2 b
ON a.id = b.profile_id
WHERE a.id = USER_ID
GROUP BY a.id, a.name;select a.id, a.name, CONCAT('[',GROUP_CONCAT(b.institution),']') institution
from table1 a, table2 b where a.id = USER_ID and a.id = b.profile_id
group by a.id, a.name;Context
StackExchange Database Administrators Q#48642, answer score: 8
Revisions (0)
No revisions yet.