webForumDet fria alternativet

Avancerad SELECT sats

1 svar · 161 visningar · startad av Asterix

AsterixMedlem sedan dec. 1999483 inlägg
#1

Tabellerna här under är en förenkling.

beställning (m_order) ser ut så här:
id, user_id
1, 5
2, 4

produkter (p_order) ser ut så här:
id, prod_id, order_id
1, 2, 1
2, 3, 1
3, 2, 2

Nu vill jag plocka ut alla betällningar och de produkter som hör till där det ingår en produkt med id 2. Med SELECT p_order.*, m_order.*, spel.name, konsol.shortname, spel.release, spel.id, users.fname, users.ename from m_order LEFT JOIN p_order ON m_order.id = p_order.order_id LEFT JOIN spel ON spel.id = p_order.prod_id LEFT JOIN konsol ON spel.konsol = konsol.id LEFT JOIN users ON users.id = m_order.user_id WHERE p_order.prod_id = '$_sid' and m_order.s_date = '0' ORDER BY m_order.o_date, spel.name får jag ut:
produkterna med id 1, 3 men jag vill ha ut också ha ur produkten med id 2 eftersom den har samma orderid som produkten med id 1 och produkt 1 har ju produktid 2.

------------------
/Emil Hesslow

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT p1.*, m_order.*, spel.name, konsol.shortname, 
       spel.release, spel.id, users.fname, users.ename 
  from m_order JOIN p_order as p1
    ON m_order.id = p_order.order_id join p_order as p2
    on p1.order_id = p2.order_id JOIN spel  
    ON spel.id = p1.prod_id JOIN konsol 
    ON spel.konsol = konsol.id JOIN users 
    ON users.id = m_order.user_id 
 WHERE p2.prod_id = '$_sid' 
   and m_order.s_date = '0' 
ORDER BY m_order.o_date, spel.name

------------------
essentitia preter non sans multiplicandum

126 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)