Autor Zpráva
davef6
Profil
Dobrý den,

je nějak možné vypsat tento případ: mám nějaké kategorie které se vypisují a pod nimi bych chtěl aby z každé kategorie se vypsalo 5 obrázků............pujde to nějak jedním dotazem?

takto jednoduše vypisuji kategorie select orig_nazev, id from img_blok order by cas desc

ještě jsem zapomněl uvést že kategorie a images jsou provázány kategorie.id = images.id_kat

děkuji za rady
tiso
Profil
davef6
from img_blok
kategorie.id = images.id_kat

Ako sa naozaj volajú tie tabuľky? A aké stĺpce obsahujú?
Kajman_
Profil *
Včera se tu odkazovalo na možné řešení...
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=79886#2
Kajman_
Profil *
A ještě by šel jiný přístup, vyzkoušejte si, co bude rychlejší...

select k.*, i.*
from   kategorie k,
       images i,
       (select i1.id
        from   images i1
        left   join images i2 on i1.id_kat = i2.id_kat and i1.id < i2.id
        group  by i1.id
        having count(i2.id) < 5) t
where  k.id = i.id_kat
       and i.id = t.id
davef6
Profil
díky, vyzkoušim:)
davef6
Profil
nakonec jsem použil toto

select i.*,m.* from img_blok i left join images m
on i.id_kategorie = m.podkat
 and m.thumb_link<=ifnull((select a.thumb_link from images a where m.kat=a.kat order by a.cas limit 5),m.thumb_link)


ale píše mi to Subquery returns more than 1 row

složení tabulky images (id, thumb_link, cas, podkat)
img_blok (id, nazev, cas, id_kategorie)

kde podkat=id_kategorie
podkat je jediná a id_kategorie je podle počtu obrázků

Ještě jednou potřebuji výpis kategorii z img_blok a pod každou kategoríí 5 obrázků z images

děkuji všem za reakce
Kajman_
Profil *
Ale podle příkladu, tam má být limit 4,1. A také musí být stejné to, co vybíráte a podle čeho řadíte - jinak to nebude fungovat.

A ještě se tu o víkendu řešil úplně jiný přístup, možná bude ještě o chlup rychlejší.
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=89155#10
davef6
Profil
tak jsem to upravil, ale funguje to jen částečně

select i.*,m.* from img_blok i left join images m
on i.id = m.podkat
 and m.thumb_link<=ifnull((select a.thumb_link from images a where m.podkat=a.podkat limit 4,1),m.thumb_link) where i.id_kategorie='$id_kat'


výpíše to název kategorie a pod tím obrázek, další znovu název kategorie a druhý obrázek (ne stejný) atd.....podle počtu obrázků do 5ti, potřeboval bych aby to vypsalo pouze jednou nadpis kategorie a pod to se vložilo těch 5 obrázků.

děkuji za trpělivost:)
Kajman_
Profil *
Název kategorie si vypište jen, pokud se změnil. A v tom poddotaze Vám chybí order by a.thumb_link - bez toho to asi nebude fungovat správně.
davef6
Profil
zkoušel jsem použít distinct pak ještě group by, ale vždy mi to vrátilo pořád to co nechci:(
Kajman_
Profil *
Tohle se už řeší v aplikaci a ne v sql. V php (nebo v čem si to vypisujete) si ukládejte poslední název kategorie. Vypište název jen pokud se minulý název liší od názvu v aktuálním řádku.
davef6
Profil
ok, moc děkuji za pomoc:)
davef6
Profil
ještě bych měl jeden menší dotaz:)

select i.*, m.thumb_link from img_blok i left join images m
on i.id = m.podkat and m.thumb_link<=ifnull((select a.thumb_link from images a where m.podkat=a.podkat order by a.thumb_link limit 7,1),m.thumb_link) where i.id_kategorie='$id_kat' order by i.cas desc


potřeboval bych doplnit stránkování.......mám skript v php kde vždy do dotazu stačí nakonec doplnit limit $zacatek, $konec
bohužel u tohoto dotazu to nejde, jde to řešit jinak?

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0