Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dwa SELECTy jako jeden wynik z różnymi kolumnami
wujek2009
post
Post #1





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


Hej,

Mam następujące zapytanie:
  1. SELECT count(vu.id) AS num_vote_up FROM project_vote AS vu WHERE vu.project_id = 4 AND vu.vote_type = 'up'
  2. UNION
  3. SELECT count(vu.id) AS num_vote_down FROM project_vote AS vu WHERE vu.project_id = 4 AND vu.vote_type = 'down'


Jednak zwraca on jedną kolumnę num_vote_up z dwoma pozycjami (screen: http://iv.pl/images/80662504519608965673.png)

Chciałbym, aby select zwrócił JEDEN wiersz z dwoma kolumnami: num_vote_up, num_vote_down.
Próbowałem każdy select w nawias zabrać i później dodać alias, ale mam błąd składniowy:

  1. (SELECT count(vu.id) FROM project_vote AS vu WHERE vu.project_id = 4 AND vu.vote_type = 'up') AS num_vote_up
  2. UNION
  3. (SELECT count(vu.id) FROM project_vote AS vu WHERE vu.project_id = 4 AND vu.vote_type = 'down') AS num_vote_down


komunikat:
Kod
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS num_vote_up LIMIT 0, 25 UNION
(' at line 1


chociaż wydawało mi się, że kiedyś już tak robiłem z UNIONami i aliasami i działało
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. SELECT count(IF(vu.id = 'up', 1, NULL) AS 'up', count(IF(vu.id = 'up', NULL, 1) AS 'down' FROM project_vote AS vu WHERE vu.project_id = 4


Ten post edytował Pyton_000 24.01.2016, 14:11:08
Go to the top of the page
+Quote Post
wujek2009
post
Post #3





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


Ciekawe rozwiązanie, dzięki za info.

  1. # brakowało tylko nawiasów, ale tak to jest ok
  2. SELECT count(IF(vu.id = 'up', 1, NULL)) AS 'up', count(IF(vu.id = 'up', NULL, 1)) AS 'down' FROM project_vote AS vu WHERE vu.project_id = 4


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: 20.08.2025 - 04:41