1
我有兩個查詢。第一個返回一些結果,第二個返回任何結果。他們來了。應該相當的兩個查詢返回不同的結果
這一個返回一些結果:
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
這將返回什麼:
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
我完全迷惑。有任何想法嗎?
我的DBMS是MySQL。
我建議你'SET sql_mode ='ONLY_FULL_GROUP_BY'',直到你熟悉'GROUP BY'的工作方式。 – Quassnoi 2010-11-03 19:08:14