2016-07-28 96 views
0

不工作我有一個MySQL查詢訂購日期爲預計在MySQL

select count(*) as TotalCount, 
      pd.Product_Modified_Date, 
      psc.Product_Subcategory_Name, 
      pd.Product_Image_URL 
     from product_subcategory psc 
inner join product_details pd on psc.Product_Subcategory_ID = pd.Product_Subcategory_Reference_ID 
    where pd.Product_Status = 0 and 
      psc.Product_Subcategory_Status = 0 
    group by psc.Product_Subcategory_Name 
    order by pd.Product_Modified_Date desc 

enter image description here

在我product_details表中有新的圖像的URL。但我無法通過上述查詢得到它。

我該怎麼辦?

+1

看起來像什麼永遠填充'Product_Modified_Date'填充它是錯誤的。這也似乎只是一個MySQL問題。是否有PHP/mysqli的問題? – chris85

+0

你更喜歡什麼輸出?如果第一行代表172個具有相同名稱的記錄,那麼您希望爲該行顯示哪個(可能不同)172日期和url? – showdev

回答

2

您正在對一列進行分組,Product_Subcategory_Name,但您的選擇列表中還有其他列Product_Image_URLProduct_Modified_Date

如果您有組中有多行的情況(您這樣做,因爲每組中的計數是14或更多),MySQL只能爲Product_Image_URL提供一個值。所以它會在組中選擇一些行,並使用該行中的值。組中所有其他行的URL值將被忽略。

若要解決此問題,您必須將所有列組合在您的選擇列表中,這些列不屬於聚合函數的一部分。你不想用來組成一個新組的任何列必須進入一個聚合函數。

羅蘭·布曼寫了一個優秀的博客詳細介紹瞭如何使用GROUP BY正確:http://rpbouman.blogspot.com/2007/05/debunking-group-by-myths.html