Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> union all i group by
masterbx2
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 1.04.2011

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


mam 2 zapytania do bazy ktore lacze UNION ALL. z obydwu dostaje wyniki z tej samej kolumny. w tym przypadku user_id. chialbym teraz zkozystac z group by user_id aby wyniki sie nie powtarzaly. Jezeli jednak dodaje do zapytania SELECT x FROm ($zapytanie) GROUP BY x wyskakuje blad. jak to rozwiazac?


  1.  
  2. $both = "
  3. SELECT user_id FROM
  4. (
  5.  
  6. SELECT user_id FROM pm AS a2 INNER JOIN users AS b2 ON a2.pm_from = b2.user_id
  7. WHERE a2.pm_to = '$user_id' AND a2.pm_del_to = '0'
  8. UNION ALL
  9. SELECT user_id FROM pm AS a INNER JOIN users AS b ON a.pm_to = b.user_id
  10. WHERE a.pm_from = '$user_id' AND a.pm_del_from = '0'
  11. ) GROUP BY user_id";
  12.  
  13. $wynik = mysql_query($both);
  14.  
  15.  
  16. while($row = mysql_fetch_array($wynik))
  17. {
  18. echo$row['user_id'];
  19. }
  20.  


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zamiast UNION ALL daj samo UNION. Żadne grupowanie czy DISTINCT nie będzie wówczas potrzebne.
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Spróbuj całości nadać alias i dopiero sie baw, czyli końcówka mogła by wygladac tak:
  1. ...) AS together GROUP BY together.user_id


EDIT: Oczywiście jeśli faktycznie potrzebujesz WSZYSTKICH wyników, bo domyślnie UNION ALL bierze wszystkie, a UNION usuwa duble. Zależy więc co chcesz osiągnąć.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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: 22.08.2025 - 06:40