Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Niepoprawny wynik zwracany przez MySQl
Forum PHP.pl > Forum > Bazy danych > MySQL
Czadus
Mam oto takie zapytanie:

Kod
"SELECT `id`,`tytul`,`data`,`status`, (SELECT COUNT(*) FROM `admin_galeria_zdjecia` WHERE `id_galeria`='admin_galeria_dzialy.id') AS suma FROM `admin_galeria_dzialy` ORDER BY `data`, `tytul`;"


Niestety zwraca mi ciągle zero. Pola są poprawne, składniowo rownież. Przyczynę tego problemu już znalazłem. Chodzi o o warunek:
Kod
........'admin_galeria_dzialy.id'........


Gdy napiszę go bez apostrofów, to wszystko działa poprawnie, no ale przyjęło się, aby te elementy jednak były objętę nimi. Jak zatem połączyć potrzebę wykorzystania apostrofów bez burzenia prawidłowego działania zapytania??
nevt
jeżeli admin_galeria_dzialy.id jest nazwą pola id w tabeli admin_galeria_dzialy to musisz użyć znaku akcentu ` a nie apostrofu ':
`admin_galeria_dzialy`.`id`
Czadus
wielkie dzięki. oto mi właśnie chodziło. Korzystając z okazji, nie będę zakładał nowego tematu, a napiszę to tutaj. Moje zapytanie nie zwraca mi nic, a powinno.

Kod
SELECT `id`,`id_galeria`,`grafika`,`data`,`status` FROM `admin_galeria_zdjecia` WHERE `data`=(SELECT MIN(`data`) FROM `admin_galeria_dzialy` WHERE `status`='1');


Chcę wyświetlać losowe zdjęcie z najnowszej galerii. Zatem chcę pobrać sobie informacje o tej, która ma najmłodszą datę. samo podzapytanie działa poprawnie, jedna reasumując całość, zapytanie nie zwraca mi nic. Czy napisałem coś nie tak??

Dodam, że MIN(`data`) dotyczy pola daty z tabeli `admin_galeria_dzialy`, podobnie `status`. Pozostałe pola w podstawowym zapytaniu odnoszą się do tabeli `admin_galeria_zdjecia`.

-----------------------------------------------------------
PROBLEM rozwiązany. Zapytanie było poprawnie napisane składniowo, jednak okazało się, że szukałem w tabeli ze zdjęciami rekordów o takiej samej dacie, jak utworzony dział dla tej galerii. No oczywiście tak być nie mogło, bo każdy rekord ma inną datę. Poprawne zapytanie wygląda następująco:

Kod
SELECT `id`,`id_galeria`,`grafika`,`data`,`status` FROM `admin_galeria_zdjecia` WHERE `id_galeria`=(SELECT `id` FROM `admin_galeria_dzialy` WHERE `status`='1' AND `data`=(SELECT MAX(`data`) FROM `admin_galeria_dzialy` WHERE `status`='1'));
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.