

Ako na zlozity dotaz [MySQL]
Dobry den vospolok,
zatuhol som pri rieseni jedneho MySQL dotazu s poddotazmi, moze mi s tym niekto pomoct? Ide o to, ze mam 3 tabulky:
A teraz otazka: Potrebujem spojit tieto 3 tabulky tak, ze vypisem vsetky veci, ich mena, kategorie a priradim ku kazdej veci obrazok. Kde je problem. Spojit tabulky veci a kategoria veci nie je problem na zaklade ID, obrazky by som priradoval tiez podla ID, avsak chcem ku kazdej veci vybrat len JEDEN obrazok a v tabulke obrazky veci sa nachadza hned niekolko obrazkov k jednej veci, preto vypise tu istu vec vo vratenom query ako viac poloziek, riadkov. Ako obmedzit nacitanie obrazkov na jeden jediny? Skusal som rozne operatory a poddotazy, ale nic sa mi nedarilo. Zrejme je to trivialita, ale neviem prist veci na klb.
Vdaka za akekolvek nakopnutie.
SELECT v.jmeno, k.kategorie, o.obr FROM veci v JOIN kategorie k ON v.kategorie = k.id, obrazky o WHERE o.id = (SELECT id FROM obrazky WHERE id_vec = v.id LIMIT 1)
Dakujem, overim. Mozem sa spytat, co znamena zapis:
a
? To priradujete alias "o" tabulke "obrazky"?
Ide o dosť bežný problém, riešení je na webe veľa. Ak nechceš použiť view, tak si môžeš prečítať napríklad How to select the first/least/max row per group in SQL.
Dakujem vsetkym zucasnenym za rady, vsetky boli podnetne. Vidiet, ze ste profici. Zo vsetkych rad som sa co-to naucil.
Problem som vyriesil prostym LEFT JOIN-om, kde som sa vyhral trochu s klauzulami WHERE a pod.
Este raz dakujem a znacim ako vyriesene.