Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: GROUP BY z pominięciem jednej wartości.
Forum PHP.pl > Forum > Bazy danych > MySQL
siutek
witam,
posiadam tabele tbl_galeria, która w każdym rekordzie zawiera nazwę pliku graficznego. te nazwy NIGDY się nie powtarzają. jeden rekord = jedno zdjęcie.
w strukturze zawarłem kolumnę fld_gal_id. Jeśli zdjęcie funkcjonuje "samodzielnie" to pole to przyjmuje wartość NULL, jeśli zaś fotka "należy" do galerii, to w polu tym wpisywane jest ID galerii.
ID galerii to nic innego jak ID pierwszego dodanego do niej zdjęcia. Dzięki czemu unikam tworzenia dwóch tabel jedna ze zdjęciami, druga z galeriami.

Jednak nie mam pojęcia jak mam wyciągać dane z bazy przy założeniu że interesują mnie WSZYSTKIE zdjęcia samodzielne i po jednym zdjęciu z galerii.

próbowałem przez SELECT * FROM tbl_galeria GROUP BY fld_gal_id jednak zapytanie to zwraca mi oprocz zgrupowanych rekordów zdjęć należących do galerii, również zgrupowane WSZYSTKIE pliki samodzielne, czyli grupuje również rekordy z fld_gal_id=NULL.

Czy ktoś wie jak skonstruować zapytanie do bazy by rekordy z zawartością pola po którym grupuje = NULL nie były grupowane?

mam nadzieję, że wyjaśniłem w miarę jasno :/
nospor
najzwylkej w swiecie dodaj warunek WHERE.
siutek
tylko że wówczas wyświetli mi TYLKO rekordy które mają fld_gal_id=NULL lub TYLKO rekordy które fld_gal_id>0

w wyniku chcialbym otrzymać coś jak ponizej:

------------------------------------
| fld_id | fld_name | fld_gal_id |
------------------------------------
| 1 | a.jpg | NULL |
----------------------
| 2 | b.jpg | NULL |
----------------------
| 3 | c.jpg | NULL |
-------------------
| 4 | d.jpg | 10 |
-------------------
| 7 | e.jpg | 11 |
-------------------

a tabela przykładowo wygląda tak:
------------------------------------
| fld_id | fld_name | fld_gal_id |
------------------------------------
| 1 | a.jpg | NULL |
----------------------
| 2 | b.jpg | NULL |
----------------------
| 3 | c.jpg | NULL |
-------------------
| 4 | d.jpg | 10 |
-------------------
| 5 | f.jpg | 10 |
-------------------
| 6 | g.jpg | 10 |
-------------------
| 7 | e.jpg | 11 |
-------------------
| 8 | h.jpg | 11 |
-------------------
| 9 | i.jpg | 11 |
------------------

nospor
Acha, teraz rozumiem.
To zrob union z dwoch zapytan.
Jedno: grupowanie z where pole is not null
drugie: bez grupowania z warunkiem pole is null
siutek
HA! działa!! dziękować winksmiley.jpg dorzuce jeszcze limit i bedzie git!
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.