我一直在查询连接4个表的查询时遇到太多结果。它在95个结果中返回,有些列重复10次,我认为它应该只有3,并且数据根本不匹配。
我开始撰写这篇文章,并认为我会在sqlfiddle上很好地编写代码以便于解释,但是当我在那里运行查询时,它返回了我想要的结果,有34个结果,并且所有数据都在应该的位置。我想知道为什么查询工作,因为我喜欢它,而不是在我的服务器上。我看到他们增加了一个'额外的:使用在哪里;使用临时;在视图执行链接中使用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
感谢您的任何见解。
答案 0 :(得分:0)
左连接右侧的一个或多个表必须具有多个匹配的连接行。