Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: inner join zwraca zero rekordów ...
Forum PHP.pl > Forum > Bazy danych > MySQL
acztery
mam takie zapytanie


  1. SELECT *,DATABASE.comment AS comment,DATABASE.id AS id, DATABASE.http AS http, AVG(comments.r) AS r ,AVG(comments.r5) AS r5 FROM `database` INNER JOIN comments ON DATABASE.id = comments.parent WHERE comments.act = '1' AND comments.typ = 'BAS' AND DATABASE.act='1' AND DATABASE.cat = 'salony' GROUP BY DATABASE.id ORDER BY DATABASE.id DESC LIMIT 10



zapytanie listuję dane z tabeli database i pobiera serdnie z comments. z tym ze jak nie ma zadnych zrednich to nie pobiera danych (jak nie ma nic w comments) czyli zeby pobrac rekord ten rekord musi miec wpis spelniajacy w comments.

left join i right nie działa.

kurde juz tyle nad tym siedze banalna sprawa ale jakoś nic mi nie przychodzi do glowy.

PS wiem ze nazwa database jest zła ale to chyba nie powód?
mat-bi
DATABASE.id = comments.parent - podajesz zamiast DATABASE nazwę tabeli, takie coś nie dziwne, że nei działa wink.gif
acztery
sql nie zwraca błędów..

database to 1 nazwa tabeli
comments to 2 nazwa

Wiec nie rozumiem co jest zle w tym co zacytowałeś?


TEMAT do zamknięcia. Zastosowałem procedury i trigery.
nospor
Skoro taki JOIN ci nie zwraca rekordow to:
1) Dla podanych warunków nie ma żadnych rekordów w database
albo
2) Dla podanych warunków znalazł ci tylko takie rekordy database, dla których nie ma komentarzy.

Jeśli to była sytacja nr 2 to zamiast inner join masz zastosować left join
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.