Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak zastąpić w tym przykładzie operator UNION
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam , mam taki przykład:

SELECT sum(ile) as suma, name FROM (

SELECT count(p.id) as ile,t.name
FROM Profile p
INNER JOIN Team t
ON p.favorite_team_1_id = t.id
GROUP BY t.name

UNION

SELECT count(p.id) as ile,t.name
FROM Profile p
INNER JOIN Team t
ON p.favorite_team_2_id = t.id
GROUP BY t.name

) a GROUP BY name ORDER BY suma

Potrzebuję zsumować wyniki dwóch zapytań i chciałbym to zrobić bez użycia UNIONa. Można to zrobić inaczej ?

proszę o podpowiedź, dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


?
  1. COUNT(t1.id) + COUNT(t2.id) AS suma_wszystkiego


Jeśli nie o to chodziło, to napisz jaki dokładnie chcesz osiągnąć wynik, bo ni cholery nie zrozumiałem Twojego wytłumaczenia.

[edit]
Chyba wiem o co chodziło, chcesz zrobić listę najpopularniejszych rekordów z Team, zgadza się? Jak dla mnie, z taką strukturą bazy danych nie zrobisz tego bez użycia UNION. Jedyne co możesz zrobić to trochę to zoptymalizować, żeby nie robić 3 razy grupowania po stringach i 3 razy wykonywać funkcji liczących.



Ten post edytował sowiq 10.05.2013, 14:11:55
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: 16.10.2025 - 20:42