Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> GROUP_CONCAT, HAVING...WTF?, GROUP_CONCAT, HAVING...WTF?
polishprogrammer
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.02.2007
Skąd: poznań

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


Cześć

mam takie zapytanie (będę cholernie wdzięczny jeśli znajdzie ktoś chętny do pomocy)


  1. SELECT entries.*, GROUP_CONCAT(channels.channel_name) AS channel_names
  2. FROM entry_channel INNER JOIN entries ON entry_channel.entry_id = entries.entry_id
  3. INNER JOIN channels ON entry_channel.channel_id = channels.channel_id
  4. GROUP BY entry_channel.entry_id



chciałbym przefiltrować wyniki tak aby nie stracić danych z GROUP_CONCAT smile.gif

tj konkretnie pobrać rekordy które mają konkretne channel_name ale też zachować ino o innych channel_name

myślałem że mogę wcisnąć "HAVING channel_name IN channel_names" ale się dupa

WHERE chyba odpada bo jest wykonywane przed grupowaniem a ja konieczne potrzebuje dane agregacyjne


--------------------
Mój Blog o Internecie
Go to the top of the page
+Quote Post
prond
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


GORUP_CONCT robi coś takiego, że jak masz np.: taką tabelkę:
+--------+
| col
+--------+
| Ala
| ma
| kota
+--------+
i napiszesz
  1. SELECT GROUP_CONCAT(col) FROM tab;

To dostaniesz
+--------+
| Alamakota
+--------+
i coś takiego w warunku HAVING zostanie wzięte jako cały ten scalony string, np:
  1. SELECT GROUP_CONCAT(col) FROM tab HAVING GROUP_CONCAT(col) = 'Alamakota';


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 05:00