dunkel kirjoitti:Hyvä homma, nuo toimii molemmat. Alkuperäinen ei vaan toimi enkä oikeastaan tiedä miksi.
Kiitos vinkeistä!
... nyt täytyy vielä samassa lauseessa järjestää varaosien yleisyys. Ei ole vahva puoli kun nuo GROUP BY jutut menee yli hilseen...
![Punastuu [:$]](./images/smilies/icon_redface.gif)
Ehkä alkuperäinen ei tomi koska siinä viitataan samaan kenttään kahdesti eikä erotella niiden väliltä. Tosin en voi olla varma...
Muistelen myös ammoisilta ajoilta että Oraclessa alikyselyt tehtiin enemmän tyyliin:
Koodi: Valitse kaikki
SELECT varaosa FROM luettelo WHERE laite [b]IN[/b] (SELECT laite FROM luettelo WHERE varaosa = X)
Tosin siitä on vuosia kun viimeksi tuota ajattelin.
edit:
Eikun eihän toi voi toimia...
edit2:
Joo, testasin just ja kyllä mysql'ssä voi käyttää sisäistä kyselyä tuolla tavalla yhtenä ehtona, tosin sen pitää nimenomaan olla IN (SELECT...). Logiikkana siis on, että sisäisen kyselyn sarakkeiden on vastattava ulkoista jossa verrataan... Eli esim sinun tapauksessa vertailu laite -> laite on pätevä.
Mutta kun mä yritän järkeillä tuon kyselyn logiikkaa niin ei se oikein avaudu mulle, tai siis vaikka sen voisi saada tuolla = -> IN muutoksella toimimaan niin kovin järkevältä ei näytä.