Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> set i group by
janek
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

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


witam,

mam pole set w bazie, opcje powiedzmy że są 'WAW','KTW','KRK'

i teraz mam 4 wiersze, w których zapisane są następujące dane:

1. 'WAW'
2. 'WAW'
3. 'WAW','KTW'
4. 'KTW'

pobieram dane i grupuję je przez group by. chciałbym żeby kolumna set zwróciła mi w jednym wierszu wyniku zapytania wszystkie posiadane dane, czyli:

'WAW','KTW'

a nie tak jak zwraca teraz, czyli:

'WAW',
'WAW','KTW'
'KTW'

macie jakiś pomysł jak to zrobić?

z góry dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Draugfor
post
Post #2





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 13.07.2003
Skąd: Torun/Poznan

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


Nie wiem, czy dobrze rozumiem, ale moze
  1. SELECT DISTINCT ...
Go to the top of the page
+Quote Post
janek
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

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


nie, to nie pomaga (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Draugfor
post
Post #4





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 13.07.2003
Skąd: Torun/Poznan

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


To podaj strukture bazy i przykladowe zapytanie, ktore zwraca zly wynik.
Go to the top of the page
+Quote Post
janek
post
Post #5





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

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


interesująca mnie tabela bazy:

  1. CREATE TABLE `go_oferta_data_cena` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `oferta_id` int(11) NOT NULL DEFAULT '0',
  4. `data` date NOT NULL DEFAULT '0000-00-00',
  5. `cena_1_t` decimal(4,0) NOT NULL DEFAULT '0',
  6. `dni_1_t` tinyint(4) NOT NULL DEFAULT '0',
  7. `cena_2_t` decimal(4,0) NOT NULL DEFAULT '0',
  8. `dni_2_t` tinyint(4) NOT NULL DEFAULT '0',
  9. `waluta` enum('PLN','EUR','USD') NOT NULL DEFAULT 'PLN',
  10. `wyzywienie` enum('domyslne','brak','BB','HB','FB','all') NOT NULL DEFAULT 'domyslne',
  11. `wylot_z` SET('domyslne','WAW','KTW','KRK','WRO','POZ','GDN','SZ','SO','RZE','B-B','BIAŁ','BYDG','CZST','GLW','KLCE','RAD','OPO','ŁDZ','PRAG','wla') NOT NULL DEFAULT 'domyslne',
  12. `last_minute` enum('0','1','2') NOT NULL DEFAULT '2',
  13. PRIMARY KEY (`id`),
  14. KEY `oferta_id` (`oferta_id`)
  15. );


zapytanie:
  1. SELECT d.wylot_z, count(d.wylot_z) AS ile
  2. FROM go_kraj k, go_region r, go_miasto m1 LEFT JOIN go_miasto m2 ON m2.id=m1.dzielnica_m_id, go_hotel h, go_oferta o, go_oferta_data_cena d
  3. WHERE k.id=r.kraj_id AND r.id=m1.region_id AND m1.id=h.miasto_id AND h.id=o.hotel_id AND o.id=d.oferta_id AND o.wys='1' AND (d.DATA >= date_add(now(), interval 14 day) OR (d.DATA >= now() AND d.last_minute='1')) AND k.id='3' AND (d.wylot_z!='0' AND d.wylot_z!='domyslne')
  4. GROUP BY wylot_z
  5. ORDER BY d.wylot_z


chodzi o to że takie zapytanie zwraca np.:
wylot_z | ile
WAW | 3
KTW | 1
KTW,KRK | 4
WAW,WRO | 1
WAW,KTW,WRO | 1
KRK,WRO | 1
WAW,POZ | 30
KRK,WRO,SZ,SO | 1
RZE,OPO | 4

czyli mam 9 wierszy wyników zapytania, a ja chciałbym mieć to w jednym wierszu (kolumna "ile" nie jest wtedy ważna).
Go to the top of the page
+Quote Post
popbart
post
Post #6





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


No to widać że baza jest źle zaplanowana.
Pozostaje ci obrobienie tego za pomocą php.

Ten post edytował popbart 27.05.2005, 18:08:19
Go to the top of the page
+Quote Post
janek
post
Post #7





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 31.01.2003
Skąd: piękne, czyste, pachnące Katowice

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


ok, tego się właśnie bałem, ale chciałem się upewnić ...

dzięki za pomoc
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: 22.08.2025 - 20:02