0
我一直遇到查詢連接4個表返回太多的結果。它在95個結果附近返回,有些列重複10次,我認爲它應該只有3個,並且數據根本不匹配。爲什麼這個MySQL查詢返回如此多的結果?
我開始寫這篇文章,並認爲我會在sqlfiddle上很好地編寫代碼,以便於解釋,但是當我在那裏運行查詢時,它返回的結果就像我想要的一樣,結果爲34,所有數據行都應該在哪裏。我想知道爲什麼查詢的工作原理,因爲我希望它在那裏,而不是在我的服務器上。我看到他們已經添加了一個'額外的:使用where;使用臨時;在視圖執行鏈接中使用filesort。那麼,我能做些什麼來使這個結果清晰?我正在嘗試創建一個顯示有關定價信息的表格。我在這裏包含了查詢以供參考。
SELECT DISTINCT
prices.sku,
prices.base_price,
prices.min_quantity,
price_breaks.break_point,
price_breaks.price,
price_breaks.bonus,
product_options.product_code,
product_options.size,
product_types.category_type,
product_types.product_type_name
FROM prices
LEFT JOIN price_breaks ON price_breaks.sku = prices.sku
LEFT JOIN product_options ON product_options.sku = prices.sku
LEFT JOIN product_types ON product_options.product_code = product_types.product_code
WHERE prices.group = "a"
ORDER BY product_code ASC, sku ASC, break_point ASC
這裏的小提琴: http://sqlfiddle.com/#!2/67c14/1/0
感謝任何見解。
哦,廢話。當然。 SKU不是唯一的。添加 AND price_breaks.group = prices.group 完全解決了這個問題。我是一個傻瓜。謝謝。 –