Autor | Zpráva | ||
---|---|---|---|
Radicz Profil * |
#1 · Zasláno: 26. 9. 2009, 21:58:13
Zdravim všechny a prosím o pomoc.
Mam dvě tabulky jedna se jmenuje galerie a druhá se jmenuje fotografie. Potřeboval bych pomoci s SQL dotazem. Potřebuju vypsat řádky z tabulky fotografie, které mají id stejné jako v tabulce galerie s tou podmínkou že v galerii musí mít to id na řádku hash nulu. V podstatě kouknout do galerie vzít si id všude tam kde je hash = 0 a podle toho id z tabulky fotografie vypsat patřičné záznamy. Zkoušel jsem to dotazem: $vyber = mysql_query("SELECT fotografie.jmeno FROM fotografie RIGHT JOIN galerie ON fotografie.id_galerie = galerie.id WHERE galerie.hash = '0'"); Bohužel mi to nic nevypíše. Děkuji za případné rady. |
||
aaron Profil * |
#2 · Zasláno: 26. 9. 2009, 22:35:10
mas v titulku join left a v dotazu join right. jinak nulu bych nedaval do uvozovek. zkus to takhle:
$vyber = mysql_query("SELECT fotografie.jmeno FROM fotografie LEFT JOIN galerie ON fotografie.id_galerie = galerie.id WHERE galerie.hash = 0"); |
||
tzuio Profil * |
#3 · Zasláno: 26. 9. 2009, 23:40:04
Pokud má výsledná množina obsahovat takové záznamy, pro které platí fotografie.id_galerie = galerie.id a zároveň galerie.hash = 0, tak nevím, proč používat vnější spojení. Pokud by ale ve výsledné množině měli být zahrnuty řádky, pro které platí fotografie.id_galerie = galerie.id nebo galerie.hash = 0, tak vnější spojení smysl má, ovšem ani tak nemá smysl používat takovouto syntaxi, protože podmínka ve where řádky stejně odfiltruje tak, že výsledek je shodný s použitím inner join.
Pro mnou zmíněný druhý případ by byla takováto syntaxe ta správná: SELECT fotografie.jmeno FROM fotografie RIGHT JOIN galerie ON fotografie.id_galerie = galerie.id WHERE fotografie.jmeno is not null or galerie.hash = 0; |
||
Časová prodleva: 15 let
|
0