Autor | Zpráva | ||
---|---|---|---|
Cup Profil |
Moje vědomosti jsou vyčerpány. A to co bych chtěl jedním dotazem jsem s něma nedal. Poprosil bych Vás jestli by jste mi poradili pokud budete vědět.
Jde galerii ... každá galerie má fotky (nebo nemá) a administrátor si může vybrat fotku která se zobrazí jako náhledová fotka při výpisu galerií z db. Ale pokud ji nevybere tak aby se zobrazila jakákoli jiná. tab fotka(idFotka, IdFotogalerie, ..... nahledovaFotka) tab fotogalerie(idFotogalerie, nazevFotogalerie ) sloupec náhledováFotka nabírá hodnoty 1|0 a chtěl bych vypsat fotogalerie, a já chci aby mi to vybíralo počet fotek v galerii a údaje o fotce která má nastaveno nahledovaFotka na 1 (kdyz nema tak jakoukoli jinou) ... ve SQL umim jen to co sem kde okoukal ... dal jsem dokupy toto a to mi vybírá to co chci ... ale nevybere to tu fotku která má 'nahledovaFotka' na 1 ... zkoušel jsem to řadit sestupně ... pak jsem dal max ... ale to je blbost ... sem si neuvedomil ... Pokud někdo ví tak prosím poraďte SELECT count(f.idFotka) as countFotka, MAX(f.nahledovaFotka), f.idFotka, f.popisFotka, f.nazevFotka, f.idFotogalerie, fg.nazevFotogalerie FROM fotka f, fotogalerie fg WHERE f.idFotogalerie = fg.idFotogalerie AND f.idTrida = '".$_SESSION["idTrida"]."' group by f.idFotogalerie order by fg.idFotogalerie DESC potřebuju tam někam do podmínky dát to aby mi to vytáhlo fotku s nahledovaFotka = 1 nebo jakoukoli jinou pokud nebude Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ). Moderátor Joker: Sloučil jsem dva příspěvky do jednoho
|
||
SwimX Profil |
#2 · Zasláno: 22. 1. 2010, 18:06:54 · Upravil/a: SwimX
Cup:
k čemu je dobré vybírat MAX(nahlekdovaFotka)? a nestačilo by k řešení tvého problému změnit jen ORDER? ORDER BY f.nahledovaFotka = 1 ASC, f.idFotogalerie DESC mělo by to vrátit první záznam ten, kde je náhledová 1, zbytek seřadit podle idFotogalerie. |
||
Kajman_ Profil * |
#3 · Zasláno: 22. 1. 2010, 18:29:24
Možná nějak takto...
select n.countFotka, fo.nahledovaFotka, fo.idFotka, fo.popisFotka, fo.nazevFotka, fo.idFotogalerie, fg.nazevFotogalerie from (select f.idFotogalerie, count(f.idFotka) as countFotka, ifnull(min(fn.idFotka), min(fn.idFotka)) idNahledu from fotka f left join fotka fn on f.idFotka = fn.idFotka and fn.nahledovaFotka = 1 where f.idTrida = '".$_SESSION["idTrida"]."' group by f.idFotogalerie) n join fotky fo on n.idNahledu = fo.idFotka join fotogalerie fg on n.idFotogalerie = fg.idFotogalerie |
||
Cup Profil |
#4 · Zasláno: 23. 1. 2010, 12:13:39
SwimX:
to jsem také zkoušel. ale nešlo mi to ... Sakra Mistr _Kajman opět nezklamal. Jdu to zkusit Děkuji moc tak jsem to zkusil a galerie bez nahledovaFotka = 1, tedy s nahledovaFotka = 0 se nevybírají .... skusím to nějak poladit sám ale nepředpokládám že to zvládnu :) |
||
Kajman_ Profil * |
#5 · Zasláno: 23. 1. 2010, 19:21:43
Jo na řádku 10 je překlep, mělo být
ifnull(min(fn.idFotka), min(f.idFotka)) idNahledu |
||
Cup Profil |
#6 · Zasláno: 23. 1. 2010, 23:07:28
Kajman:
Luxus, díky moc. |
||
Časová prodleva: 14 let
|
0