SELECT bilmärken.bilmärke, bilmodeller.bilmodell FROM bilmärken INNER JOIN bilmodeller ON bilmärken.id = bilmodeller.id_bilmärke ORDER BY bilmärken.bilmärke, bilmodeller.bilmodell
mvh
16 svar · 488 visningar · startad av streetrobban
Hej, jag har följande två tabeller:
Bilmärken
id, bilmärke
Bilmodeller
id, id_bilmärke, bilmodell
Nu vill jag hämta en lista på samtliga bilmodeller med tillhörande bilmärke från tabellen Bilmodeller. Så jag måste med hjälp av ID't från bilmodeller.id_bilmärke hämta namnet på bilmärket från bilmärken.bilmärke.
Hoppas jag inte förvirrar er för mycket :) Finns det något enkelt sett att lösa detta på?
SELECT bilmärken.bilmärke, bilmodeller.bilmodell FROM bilmärken INNER JOIN bilmodeller ON bilmärken.id = bilmodeller.id_bilmärke ORDER BY bilmärken.bilmärke, bilmodeller.bilmodell
mvh
Tack för ditt svar @nders!
Jag måste bumpa den här tråden lite då jag har en till fråga.
Så här ser mina tabeller ut:
bilmärken
id, bilmärke
bilmodeller
id, bilmodell, id_bilmärke
kategorier_biltillbehör
id, kategorinamn
produkter_biltillbehör
id, produktnamn, id_bilmodell, id_bilmärke, bild, beskrivning, pris, id_kategori, tid, datum
Och nu vill jag hämta en produkt. Och varje produkt innehåller ju tre olika id nummer som måste hämtas från tre olika tabeller. Hur gör jag det? Jag måste alltstå hämta:
bilmärken.bilmärke m.h.a produkter_biltillbehör.id_bilmärke
bilmodeller.bilmodell m.h.a. produkter_biltillbehör.id_bilmodell
kategorier_biltillbehör.kategorinamn m.h.a. produkter_biltillbehör.id_kategori
Jag undrar även om det går att hämta från en annan tabell samtidigt som man loopar ut resultat. Har provat detta lite, men när man öppnar en ny tabell avbryts ju loopen.
Tack på förhand!
Tråden flyttas från PHP..
select b.bilmärke ,
bm.bilmodell,
kb.kategorinamn,
p.produktnamn
from produkter_biltillbehör as pb
inner join kategorier_biltillbehör as kb on pb.id_kategori = kb.id
inner join bilmodeller as bm on pb.id_bilmodell = bm.id
inner join bilmärken as b on pb.id_bilmärke = b.id
LarsG: Har du förkortat tabellnamnen för enkelhetens skull eller ska det skrivas så där?
För enkelhets skull. Du kan använda det fullständiga namnet men om du har angett ett kortnamn så måste du använda det.
Ok. Men om tabellen heter sns_bilmodeller kan jag använda ett kortnamn då?
Jo visst, självklart eller så förstår jag inte vad som är problemet.
Jaha, nu såg jag att du "döpte" alla förtkortningar. :)
Jag får det inte att funka riktigt. Så här ser koden jag använder ut.
SELECT b.bilmärke,
bm.bilmodell,
kb.kategorinamn,
p.produktnamn
FROM sns_produkter_biltillbehör AS pb
INNER JOIN sns_kategorier_biltillbehör AS kb ON pb.id_kategori = kb.id
INNER JOIN sns_bilmodeller AS bm ON pb.id_bilmodell = bm.id
INNER JOIN sns_bilmärken AS b ON pb.id_bilmärke = b.id
Tabellerna heter sns_ etc...
på vilket sätt funkar det inte riktigt?
Felmeddelande?
Felmeddelandet är det enda som skrivs ut:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/kunder/sidan/admin/andra2.php on line 110
du borde ju kunna få något MySQL-fel som talar om någonting om SQL-frågan? Skriver du ut mysql_error()?
Jag ändrade SQL Satsen till följande. Nu skriver den ut sns_produkter_biltillbehör.produktnamn men inget annat.
SELECT sns_bilmärken.bilmärke, sns_bilmodeller.bilmodell, sns_kategorier_biltillbehör.kategorinamn, sns_produkter_biltillbehör.produktnamn FROM sns_produkter_biltillbehör AS sns_produkter_biltillbehör
INNER JOIN sns_kategorier_biltillbehör ON sns_produkter_biltillbehör.id_kategori = sns_kategorier_biltillbehör.id
INNER JOIN sns_bilmodeller ON sns_produkter_biltillbehör.id_bilmodell = sns_bilmodeller.id
INNER JOIN sns_bilmärken ON sns_produkter_biltillbehör.id_bilmärke = sns_bilmärken.id WHERE sns_produkter_biltillbehör.id = '$id'
Nu fick jag det att funka...
SELECT sns_bilmärken.bilmärke, sns_bilmodeller.bilmodell, sns_kategorier_biltillbehör.kategorinamn, sns_produkter_biltillbehör.produktnamn, sns_produkter_biltillbehör.bild, sns_produkter_biltillbehör.beskrivning, sns_produkter_biltillbehör.pris, sns_produkter_biltillbehör.tid, sns_produkter_biltillbehör.datum FROM sns_bilmärken
INNER JOIN sns_produkter_biltillbehör ON sns_produkter_biltillbehör.id_bilmärke = sns_bilmärken.id
INNER JOIN sns_bilmodeller ON sns_produkter_biltillbehör.id_bilmodell = sns_bilmodeller.id
INNER JOIN sns_kategorier_biltillbehör ON sns_produkter_biltillbehör.id_kategori = sns_kategorier_biltillbehör.id WHERE sns_produkter_biltillbehör.id = '$id'
Tack för hjälpen!