0

あまりにも多くの結果を返す 4 つのテーブルを結合するクエリに問題がありました。95 件程度の結果が返されます。一部の列は 10 回繰り返されますが、3 回だけである必要があり、データがまったく一致しません。

私はこの投稿を書き始め、説明を簡単にするために sqlfiddle で適切にコーディングすることを考えましたが、そこでクエリを実行すると、34 の結果で必要な結果が返され、必要な場所にすべてのデータ行が返されました。サーバーではなく、クエリが希望どおりに機能するのはなぜだろうと思っています。「extra: Using 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

洞察をありがとう。

4

1 に答える 1