![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja bym zrobił to mniej-więcej tak:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
nie może być tak , ja to chciałem zsumować kolumnowo ... nie jedne wyniki plus drugie wyniki ... dlatego tam jest UNION i jest to w podzapytaniu aby można było zrobić SUMĘ w polach
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
?
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 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
pierwsze zapytanie daje wynik taki:
7 team1 5 team2 2 team3 3 team4 a drugie daje wynik taki: 6 team1 5 team2 6 team3 3 team4 na końcu zapytanie ma wyrzucić SUMĘ a więc to: 13 team1 10 team2 8 team3 6 team4 sorry za złe wytłumaczenie (IMG:style_emoticons/default/wink.gif) Ten post edytował damianooo 10.05.2013, 14:22:47 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to chyba zrobił mniej-więcej tak:
Ten post edytował sowiq 10.05.2013, 14:33:57 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
fajnie że próbujesz pomóc ale to nie działa, poza tym pisałem na wstępie że nie chce aby tam był operator UNION ... ale pewnie się nie da ... pewnie spytacie dlaczego nie chcę z UNION więc odpowiem, że dlatego ponieważ w ORM Doctrine za pomocą UNION nie da się zrobić zapytania
Ten post edytował damianooo 10.05.2013, 15:14:45 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
To co kolega "mmmmmmm" zaproponował też nie działa. Znalazłem jednak z pomocą kolegi rozwiązanie. Można to zrobić tak:
Takie oto zapytanie z UNION:
Można zapienić na takie BEZ UNION:
Ten post edytował damianooo 11.05.2013, 12:26:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 04:34 |