J'ai deux requêtes. Le premier renvoie des résultats et le second ne renvoie rien. Les voici.Deux requêtes qui doivent être équivalentes retournent des résultats différents
Celui-ci retourne des résultats:
select md5(concat(ad.line1, ad.line2, ad.city, s.name, ad.zip, group_concat(distinct c.name))) id,
group_concat(distinct c.name) customer_names,
count(distinct c.name) number_of_customers,
ad.line1,
ad.line2,
ad.city,
s.name state_name,
ad.zip,
a.import_id
from address ad
join account_address aa on aa.address_id = ad.id
join account a on aa.account_id = a.id
join import i on a.import_id = i.id
join customer c on a.customer_id = c.id
join state s on ad.state_id = s.id
where a.import_id = 188
group by s.name, city, zip, line1, line2
ne voyez rien:
select * from
(select md5(concat(ad.line1, ad.line2, ad.city, s.name, ad.zip, group_concat(distinct c.name))) id,
group_concat(distinct c.name) customer_names,
count(distinct c.name) number_of_customers,
ad.line1,
ad.line2,
ad.city,
s.name state_name,
ad.zip,
a.import_id
from address ad
join account_address aa on aa.address_id = ad.id
join account a on aa.account_id = a.id
join import i on a.import_id = i.id
join customer c on a.customer_id = c.id
join state s on ad.state_id = s.id
group by s.name, city, zip, line1, line2) v
where v.import_id = 188
Je suis complètement embobiner. Des idées?
Mon SGBD est MySQL.
Je vous recommande de 'SET sql_mode = 'ONLY_FULL_GROUP_BY'' jusqu'à ce que vous soyez à l'aise avec le fonctionnement de' GROUP BY'. – Quassnoi