Autor Zpráva
Radicz
Profil *
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 *
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 *
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;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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