0

我在连接 4 个表的查询返回太多结果时遇到问题。它返回了 95 个结果附近,其中一些列重复了 10 次,我认为它应该只有 3,并且数据根本不匹配。

我开始写这篇文章,并认为我会在 sqlfiddle 上很好地对其进行编码以便于解释,但是当我在那里运行查询时,它返回的结果与我想要的一样,有 34 个结果,并且所有数据都排在应该的位置。我想知道为什么查询可以像我希望的那样工作,而不是在我的服务器上。我看到他们添加了一个'额外:使用 where; 使用临时的;在视图执行链接中使用文件排序。那么我该怎么做才能使这个结果变得清晰呢?我正在尝试创建一个显示定价信息的表格。我已在此处包含查询以供参考。

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

感谢您的任何见解。

4

1 回答 1

0

左连接右侧的一个或多个表必须有多个匹配的连接行。

于 2013-08-19T23:54:19.217 回答