![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie zapytanko do bazy:
Powyższe zapytanie działa jak trzeba. Mam też inne zapytanko, które różni się tylko jednym warunkiem (brak "AND o.refEarn>0 " ):
To zapytanie również działa poprawnie. Wyniki są inne niż w pierwszym zapytaniu. Następnie chciałbym te powyższe zapytania połączyć w jedno. Robię to w ten sposób :
Jak widać, "doklejam" left joinem 2-krotnie dane z jednej tabeli, zmieniając tylko "warunki". Niestety wyniki jakie to zapytanie zwraca nie są zgodne z moimi oczekiwaniami. W skrócie mówiąc to :
Daje mi idenytyczne wyniki. Z ids i ids2 jest tak samo. Gdy odpalam tamte (dwa pierwsze) zapytania osobno, wyniki są różne, czyli takie chce mieć. To :
działa tak samo jak:
A nie powinno tak być, bo przecież są różne "warunki" w "o" i "o2". W jaki sposób rozwiązać mój problem ? @up Heloł programiści. Starałem się dokładnie opisać problem. Czy coś jest niejasnego, że nie potraficie mi pomóc (IMG:style_emoticons/default/tongue.gif) ? Jeśli tak to proszę napisać, podam więcej szczegółów, czy tam wyłumaczę problem. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 20 Dołączył: 19.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
musisz uzyc pierwszego zapytania ktore jest dobre i potem uzyd podzapytanc z drugiet tabeli
np. select a.id_partnera, inna_kolumna,jeszcze_inna,(tutaj podzapytanie np select count(order) from tabela 2 where id_partnera=a.id_partnera) from pierwsza tabela a kolego jak Ci idzie ? sprobuj to: SELECT p.id, count(o.id) AS num_orders, sum(o.refEarn) AS sum_orders, GROUP_CONCAT( o.id) AS ids, (SELECT sum(refearn) AS num_orders FROM `partners` p LEFT JOIN `order` o ON o.ref=p.id and p.id=p.id) as num_orders_partner, (SELECT count(refearn) FROM `order` where ref=p.id) as ilosc_zamowien_wszystkich, (SELECT count(refearn) FROM `order` where ref=p.id and refearn>0) as ilosc_zamowien_wszystkich_pow_zero FROM `partners` p LEFT JOIN `order` o ON o.ref=p.id AND o.refEarn>0 Ten post edytował poli25 8.03.2012, 13:23:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 11:50 |