Autor | Zpráva | ||
---|---|---|---|
Fury Profil * |
#1 · Zasláno: 3. 7. 2015, 10:07:16
Zdravím,
mám následující dotaz: select g.*, f.fotka, f.popis from galerie g left join galerie_fotky f on f.galerie_id = g.id and f.hlavni = 1 where g.zobrazit = 1 order by poradi asc Tímto zobrazím na webu výpis všech galerií, společně s jejich hlavní fotkou. Potřeboval bych však, abych mohl zobrazovat i počet fotek. Dotaz jsem sice schopný upravit takto: select g.*, f.fotka, f.popis, count(f.galerie_id) pocet_fotek from galerie g left join galerie_fotky f on f.galerie_id = g.id where g.zobrazit = 1 group by f.galerie_id order by poradi asc Ale zde musím zrušit tu podmínku " and f.hlavni = 1", kterou však potřebuji. Dá se toto upravit do jednoho dotazu? Díky moc |
||
Kajman Profil |
#2 · Zasláno: 3. 7. 2015, 10:36:24
Variant je víc, asi bych použil tu první
SELECT g.*, f.fotka, f.popis, (SELECT Count(*) FROM galerie_fotky gf WHERE gf.galerie_id = g.id) pocet_fotek FROM galerie g LEFT JOIN galerie_fotky f ON f.galerie_id = g.id AND f.hlavni = 1 WHERE g.zobrazit = 1 ORDER BY poradi ASC SELECT g.*, f.fotka, f.popis, Coalesce(p.pocet, 0) pocet_fotek FROM galerie g LEFT JOIN galerie_fotky f ON f.galerie_id = g.id AND f.hlavni = 1 LEFT JOIN (SELECT gf.galerie_id id, Count(*) pocet FROM galerie_fotky gf GROUP BY gf.galerie_id) p ON p.id = g.id WHERE g.zobrazit = 1 ORDER BY poradi ASC |
||
Časová prodleva: 9 let
|
0