Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> GROUP BY z pominięciem jednej wartości.
siutek
post
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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 :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




najzwylkej w swiecie dodaj warunek WHERE.
Go to the top of the page
+Quote Post
siutek
post
Post #3





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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 |
------------------

Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
siutek
post
Post #5





Grupa: Zarejestrowani
Postów: 173
Pomógł: 1
Dołączył: 26.10.2005
Skąd: Toruń

Ostrzeżenie: (0%)
-----


HA! działa!! dziękować (IMG:style_emoticons/default/winksmiley.jpg) dorzuce jeszcze limit i bedzie git!

Ten post edytował siutek 27.01.2011, 12:31:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 09:12