30. november 2001 - 14:37Der er
7 kommentarer og 1 løsning
Omskrivelse af Query ?
Er der nogen der kan greje den her så den virker på mySQL ?
SELECT DISTINCT P.id, P.name, P.ProduktNavnDK, S.ordernr, image, smallimage, pris FROM produkt P LEFT JOIN subprodukt S ON (P.id = S.produktID) WHERE nykugle = 1 AND S.ordernr IN (SELECT Min(ordernr) FROM subprodukt WHERE produktID=P.id)
Du har for mange ubekendte værdier og dermed for få kendte værdier. HVIS vi nu for en kort stund forestiller os, at MySQL kunne forstå subselects, så ville du stadig have et problem i din subselect
SELECT Min(ordernr) FROM subprodukt WHERE produktID=P.id
\"WHERE produktID=P.id\" vil give en fejl, idet tabellen \"P\" ikke er specificeret nogen steder i din subselect. Subselects udføres altid før den select, der er \"udenom\", og databasemanageren har så ingen chance for at vide, hvad P er for en tabel.
Så din sql-query kan slet ikke lade sig gøre.
Hvis det du mener er, at du gerne vil finde det/de produkt(er), som indgår i ordren med det mindste ordrenummer, så kan det gøres gennem to queries, en hvor du først finder dit ordrenr, og en hvor du så indsætter dit ordrenr i din WHERE sætning.
Jeg må indrømme at jeg også ser den som meget mystisk skruet sammen, men så er det da heller ikke det første i det projekt, der er slam kodet. Jeg har skrevet det om på en anden måde, men du skal have tak for din interesse i mit spm.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.