Click here to Skip to main content
15,892,674 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
i have 3 tables

table 1
ID Name dob
--- ---- ----
101 ABc 10/march/86
102 XYZ 11/march/1986

Table 2

ID HobbyID
--- --------
101 1
101 2
102 1
102 2


Table 3
HobbyID HobbyName
------- ---------
1 Music
2 Games

So please tell me the query so the output comes like this:

ID Name DOB HobbyName
--- ----- ------ ----------
101 ABC 10/march/86 Music,Games
102 Xyz 11/march1986 Music,Games
Posted

Perhaps with a Pivot[^].
 
Share this answer
 
v2
I think something similar to this would work. I did not test it.

SQL
SELECT T1.ID, T1.NAME, T1.DOB, A.HOBBYNAME || ',' || B.HOBBYNAME
FROM (SELECT T2.ID, T3.HOBBYNAME
      FROM TABLE2 T2,
           TABLE3 T3
      WHERE T2.HOBBYID = T3.HOBBYID
      AND T2.HOBBYID = 1) A,
     (SELECT T2.ID, T3.HOBBYNAME
      FROM TABLE2 T2,
           TABLE3 T3
      WHERE T2.HOBBYID = T3.HOBBYID
      AND T2.HOBBYID = 2) B,
     TABLE1 T1
WHERE T1.ID = A.ID
AND T1.ID = B.ID
ORDER BY T1.ID
 
Share this answer
 
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900