Från två tabeller i SQL (sqlite) ?

Permalänk
Medlem

Från två tabeller i SQL (sqlite) ?

Jag har två tabeller- en med medlemmar/medlemsinformation och en andra tabell med annan med sparade uppgifter som är kopplat till medlemstabellen med ett ID-nummer. T.ex.:

tabell 1:

... 34. Johan Johansson | 534 23 Motala | 043-34 55 22 35. Erik Eriksson | 534 42 Motala| 043-22 02 88 ...

tabell 2:

... 34. Toyota Prego -98 34. Saab 900 34. Volvo XC -03 35. Scoda Felicia -99 ...

Som synes kan en person (Johan Johansson här) ha flera poster i tabell 2. Jag skulle vilja ha en SQL-sats som lägger samman informationen i båda tabellerna till nått sånt här:

34. Johan Johansson | 534 23 Motala | 043-34 55 22 | Toyota Prego -98, Saab 900, Volvo XC -03

Hur skulle en sådan SQL-sats se ut?

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Medlem

Hej,

Här är en SQL-fråga för hämtning av det du vill åstadkomma. Eftersom jag antar att du kan åtminstone lite SQL så får du modifera den efter behov.

SELECT u.name, GROUP_CONCAT(c.name) FROM users AS u, cars AS c WHERE u.id = 1 AND u.id = c.user GROUP BY c.user

Jag testade med två testtabeller, som har liknande strukturer som dina, och fick följande resultat

name GROUP_CONCAT( c . name ) Niklas Toyota Prego -98,Saab 900,Volvo XC -03

EDIT: Värt att notera är att det ovan är testat och skrivet i MySQL. Om det fungerar i SQLLite vet jag inte.

Permalänk
Medlem

Tack!! SQLite vill inte känna igen GROUP_CONCAT. GROUP BY finns, men det är kanske inte samma sak :/

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk

Att presentera allting snyggt på en rad tror jag är något för applikationen att göra snarare än för databashanteraren. Jag är förvisso knappast någon SQL-expert, så jag kan ha fel.

Vanligtvis gör man bara någon typ av join:

select * from t1, t2 where t1.ID = t2.ID

Observera att du får en tupel i resultatrelationen för varje matchad tupel från joinen.

Permalänk
Medlem

Jag har sökt lite på nätet och fann det att GROUP_CONCAT-funktionen verkar enbart vara för MySQL. Det är en ypperlig funktion, som gör så att man slipper skriva saker utanför databashanteraren. Nu när funktionen inte finns till SQLite (hittade någon patch till SQLite, men URL:en fungerade inte) så får du göra som HerrEkberg skriver, dvs i något scriptspråk. Det är ju inte hela världen.

Permalänk
Medlem

Eller skriva en egen GROUP_CONCAT-funktion till SQLite
Det är steget mellan att sköta det helt i databasmotorn eller i applikationen.

Permalänk
Medlem

Ni har rätt pojkar, tack!

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."