Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] LEFT JOIN, count i grupowanie
pionas
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 25.03.2009
Skąd: Pionki

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


Hej,

mam dwie tabele:
articles
article_id // id artykułu
article_title // tytuł artykułu
article_date_added // data dodania artykułu

articles_readed
user_id // id użytkownika
article_id // id artykułu
flag // 1 - przeczytany, 2 - dodany do schowka
i mam zapytanie
  1. SELECT a.*, count(b.article_id) flag1 FROM articles a LEFT JOIN articles_readed b ON (b.flag=1 AND a.article_id=b.article_id) GROUP BY a.article_id

W ten sposób wyświetlam ile osób przeczytało artykuł, a jak do tego zapytania dodać liczbę osób które dodały artykuł do schowka?
Gdy dodaję jeszcze jedno LEFT JOIN
  1. SELECT a.*, count(b.article_id) flag1, count(c.article_id) flag2 FROM articles a LEFT JOIN articles_readed b ON (b.flag=1 AND a.article_id=b.article_id) LEFT JOIN articles_readed c ON (c.flag=2 AND a.article_id=c.article_id) GROUP BY a.article_id

wychądzą brednie...

Ten post edytował pionas 27.08.2013, 07:04:38


--------------------
Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. SELECT a.*, count(case when flag=1 then b.article_id end) flag1, count( case when flag=2 then b.article_id end) flag2 FROM articles a LEFT JOIN articles_readed b ON (b.flag IN (2,1) AND a.article_id=b.article_id) GROUP BY a.article_id
Go to the top of the page
+Quote Post
pionas
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 25.03.2009
Skąd: Pionki

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


Działa, wielkie dzięki smile.gif


--------------------
Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
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: 21.08.2025 - 08:28