Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Problem z aliasem utworzonej kolumny
adgad
post
Post #1





Grupa: Zarejestrowani
Postów: 74
Pomógł: 0
Dołączył: 14.04.2010

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


Witam,
mam problem z zapytaniem w sql-u. Mianowicie wygląda ono tak:
  1. SELECT users.*, SUM(CASE WHEN c.id IS NULL THEN ...END) isComment
  2. FROM (users)
  3. LEFT JOIN comments ON users.id = comments.user_id
  4. WHERE `isComment` = 0
  5. GROUP BY users.id

to przykład zapytania wymyślony na szybko. Problem polega na tym że w zależności czy tworzona kolumna jest 1 czy zero musze ustawić warunek. Robię to w php, na wzór:
  1. if($where['comments']==1)
  2. $this->db->where('isComment >0')
  3. if($where['comments']==0)
  4. $this->db->where('isComment =0')

Problem w tym że mam błąd:
  1. Unknown COLUMN 'isComment' IN 'where clause'

pytanie zatem jak odwołać się do tej kolumny?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Fakt, co zresztą wydaję się logiczne... Nie można używać aliasów w WHERE i trzeba użyć nazwy kolumny! Przepraszam za wprowadzanie w błąd... W głowie miałem cały czas takie rozwiązanie:
  1. SELECT * FROM (SELECT `u`.*, SUM(CASE WHEN `c`.`id` IS NULL THEN ... END) `isComment`
  2. FROM `users` `u`
  3. LEFT JOIN `comments` `c` ON `u`.`id` = `c`.`user_id`
  4. GROUP BY `u`.`id`) `t`
  5. WHERE `t`.`isComment` = 0

I stąd nieporozumienie.
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 15:47