webForumDet fria alternativet

Slå i hop tre tabeller

Databaser & SQL

2 svar · 358 visningar · startad av Nova

Medlem sedan feb. 2005216 inlägg
Frågan#1

Jag har tre olika tabeller som jag vill hämta data i från med samma fråga.
De ser ut så här:

taggar_vaxling: artikelnummer, products_id, raknare
products: products_id, products_image (och en massa andra produktfakta)
products_description: products_id, products_name, products_description

Vad jag vill ha fram är products_id, products_image, products_name, products_description där artikelnummer är = (int)$HTTP_GET_VARS['artnr'] och sorterat efter products_name stigande.

Medlem sedan aug. 20039 340 inlägg
#2
SELECT p.*, d.products_name AS products_name, d.products_description  AS products_description 
FROM   taggar_vaxling v
JOIN   products p ON v.products_id = p.products_id
JOIN   products_description d ON v.products_id = d.products_id
WHERE  v.artikelnummer = $artnr
ORDER BY d.products_name ASC

Om det kan hända att products eller products_description ibland saknar en rad för en viss produkt, så måste du ändra JOIN till LEFT JOIN.
Utan LEFT utesluts alla produkter där products_description inte har en motsvarande rad. Med LEFT får du med raden, men products_name och products_description blir null. (eller värdena från products, om det är där det saknas en rad)

Medlem sedan feb. 2005216 inlägg
#3

Fungerar hur bra som helst. Jag missade lite först i copy*/past men nu fungerar det bra!
Tackar
//Peder

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)