2010-04-19 39 views
0

任何想法,为什么查询无效在MySQL中使用4组功能(不是在5)

SELECT 
    m.* 
FROM 
    products_description pd, 
    products p 
    left join manufacturers m on p.manufacturers_id = m.manufacturers_id, 
    products_to_categories p2c 
WHERE 
    p.products_carrot = '0' and 
    p.products_status = '1' and 
    p.products_id = p2c.products_id and 
    pd.products_id = p2c.products_id and 
    pd.language_id = '4' and 
    p2c.categories_id = '42' 
GROUP BY manufacturers_id 
ORDER BY COUNT(*) 

可能给下列错误:

#1111 - Invalid use of group function

MySQL的4.0.24,而不是在MySQL 5.0。 51?

+0

制造商表只有两列,id + 1其他吗? – 2010-04-19 06:17:00

回答

1

自我反应。提到一列,我想通过SELECT子句进行排序,并使用别名进行排序:

SELECT 
    m.*, COUNT(*) as cnt 
FROM 
    products_description pd, 
    products p 
    left outer join manufacturers m on p.manufacturers_id = m.manufacturers_id, 
    products_to_categories p2c 
WHERE 
    p.products_carrot = '0' and 
    p.products_status = '1' and 
    p.products_id = p2c.products_id and 
    pd.products_id = p2c.products_id and 
    pd.language_id = '4' and 
    p2c.categories_id = '42' 
GROUP BY p.manufacturers_id 
ORDER BY cnt 
+0

谢谢,这也解决了我的问题:) – 2011-04-04 17:08:23