varegruppe og katalog er bundet sammen. katalog er en masse sommerhuse med alle de oplysninger der hører til dem.
varegruppe er alle de områder som høre til sommerhusene. Så når jeg bruger ovenstående sql sætning så skriver den alt ud som jeg skal bruge, men jeg mangler lige områdenavn som ligger i varegruppe.
SELECT * FROM (katalog LEFT JOIN ordre ON (ordre.sommerhusid = katalog.id) and katalog.id=60) INNER JOIN varegruppe ON katalog.id = varegruppe.sommerhusid
Dette skulle først udføre en join på alle de sommerhuse der ikke er ordre på og så derefter en join på disse sommerhuse over i tabellen varegruppe... hvis jeg ellers har gættet korrekt :)
eller er det sådan at der kan være flere sommerhuse i et område...? Hvis det er tilfældet, så skal det nok være sådan her i stedet:
SELECT * FROM (katalog LEFT JOIN ordre ON (ordre.sommerhusid = katalog.id) and katalog.id=60) INNER JOIN varegruppe ON katalog.varegruppeid = varegruppe.id
Din løsning finder vel i øvrigt også kun et sommerhus, eller hvad? Jeg opfattede at du skulle bruge alle sommerhuse der ikke er en ordre på... er det forkert? Hvis ikke så skal du vel benytte noget i stil med:
SELECT * FROM katalog LEFT JOIN ordre ON katalog.id = ordre.sommerhusid WHERE ordre.id IS NULL
kan være at den sidste linie er anderledes på det aktuelle DBMS, f.eks.
Jeg havde sat den betingelse på fordi der skal en anden betingelese på senere, der er nemlig en datostart og en datoslut på... men jeg prøver lige den anden sidste sætning du gav mig
"SELECT * FROM (katalog LEFT JOIN ordre ON (ordre.sommerhusid = katalog.id)) INNER JOIN varegruppe ON katalog.omraadeid = varegruppe.omraadeid where katalog.id=60"
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.