2010-12-14 56 views
0

Je dois connaître le nombre de types de tickets commandés sur chaque compte, et uniquement sur les comptes ayant effectué une transaction. Je fais cela avec la requête suivante pour chaque prix:Problèmes avec MySQL COUNT() et les jointures

SELECT tickets.order_id as order_id, count(tickets.id) as count 
    FROM tickets,transactions 
    WHERE price = $price 
    AND tickets.order_id = transactions.order_id 
    GROUP BY tickets.order_id 

Cela devient le bon ensemble de résultats, mais sur les commandes où il y a plusieurs transactions, le nombre de comptage (tickets.id) est multiplié par ce nombre . Quelle requête dois-je utiliser pour éviter ce problème? Dois-je utiliser un autre type de jointure?

Répondre

6

utilisation

count (distinct tickets.id) 
+0

Cheers, pensé que ce pourrait être quelque chose comme ça, mais ne savait pas que vous pouvez utiliser le mot-clé 'distinct' dans ce contexte, merci! – fredley