MySQL慢速按查询分组

时间:2013-06-17 08:56:12

标签: mysql group-by

我有6张桌子 1.产品p 2.属性a 3.产品和属性pa(ID,pID,aID) 公司c 你来的 6.公司和用户cu(ID,cID,uID)

现在在管理员中我想看到公司产品及其属性。

SELECT p.ID, p.name
from  products p
LEFT JOIN Product and Attribute pa  ON pa.pID =  p.ID 
LEFT JOIN Attributes a  ON a.pID =  pa.aID
LEFT JOIN Company and User cu  ON cu.UiD  = p.uID    AND cu.cID = 121 (spcific company id) 
WHERE 1 
GROUP BY p.ID

1 个答案:

答案 0 :(得分:0)

MySQL中,GROUP BY隐含ORDER BY

如果不需要特定订单,请添加ORDER BY NULL

  

默认情况下,MySQL会对所有GROUP BY col1,col2,...查询进行排序,就好像您在查询中指定了ORDER BY col1,col2,....如果显式包含一个包含相同列列表的ORDER BY子句,MySQL会在没有任何速度惩罚的情况下对其进行优化,尽管排序仍然存在。如果查询包含GROUP BY但您希望避免对结果进行排序的开销,则可以通过指定ORDER BY NULL来禁止排序。例如: