2013-02-15 5 views
1

J'ai deux instruction select commeComment joindre deux sélectionner le même table

Select author_id, count(text) from posts group by author_id 

select author_id, count(text) from posts where postcounter =1 group by author_id 

Est-il possible de combiner en une seule requête les deux déclarations? Les résultats diffèrent en longueur, il est donc nécessaire d'insérer des 0 dans le second jeu de résultats.

Un grand merci pour toute aide

Meilleures salutations, Simone

Répondre

1

Vous devriez être en mesure d'obtenir ce en une seule requête en utilisant:

Select author_id, 
    count(text) TextCount, 
    count(case when postcounter=1 then text end) PostCount 
from posts 
group by author_id 
+0

merci beaucoup, ça marche parfaitement! Meilleur, Simone – user299791

1

Est-ce que vous cherchez?

select author_id, 
    sum(case when postcounter = 1 then 1 else 0 end) count1, 
    sum(case when postcounter <> 1 then 1 else 0 end) count2, 
    count(text) allcount 
from posts 
group by author_id 
0

Vous pouvez essayer une union toute déclaration?

SELECT `id`,sum(`count`) FROM (
Select author_id as `id`, count(text) as `count` from posts group by author_id 
UNION ALL 
select author_id as `id`, count(text) as `count` from posts where postcounter =1 group by author_id 
    ) 
Questions connexes