我試圖計算一個項目被購買的次數。但是,我也有一個類別表,也正在計算我的查詢,這當然是導致錯誤的數據。我怎樣才能計算我需要在一個表中的行,並只獲得這些結果?MySql orderBy和COUNT()
MySQL查詢
select
`inventory`.`on_sale`,
`inventory`.`id`,
`inventory`.`sku`,
`inventory`.`name`,
`inventory`.`price`,
`inventory_categories`.`category`,
`inventory`.`stock_quantity`,
COUNT(orders_product.sku) as skuCount
from
`inventory`
left join
`orders_product` ON `orders_product`.`sku` = `inventory`.`sku`
left join
`inventory_categories` ON `inventory`.`sku` = `inventory_categories`.`sku`
group by `inventory_categories`.`category`
order by `skuCount` desc
limit 10000
這是很難表現出我所有的記錄,但它基本上是這樣的:
orders_product.sku = ORDER1234 & ORDER1234 & ORDER891010
inventory_categories.(id)category = (cat1)ORDER1234 & (cat1a)ORDER1234 & (cat1b)ORDER1234 & (cat2)ORDER891010
所以在我的表在我的表它的顯示skuCount = 5 & 2分別代替所需的結果2 & 1。如果我沒有這個inventory.id的訂單,那麼它顯示0這是正確的,但只要一個訂單通過,它就會計數該訂單加上與該sku相等的所有類別。
如果我從我的連接語句中刪除inventory_categories,它沒有問題。但是,查詢中需要記錄目的。
剛剛加入未得到錯誤的結果計數 – 2014-08-27 17:27:06
添加http://sqlfiddle.com/這是很難理解的表格和材料。 – DanFromGermany 2014-08-27 17:27:55