У меня возникли проблемы с запросом, соединяющим 4 таблицы, возвращающих слишком много результатов. Он возвращается в районе 95 результатов, а некоторые столбцы повторяют 10 раз, когда я полагаю, что это должно быть только 3, и с данными, которые не совпадают вообще.Почему этот запрос MySQL возвращает столько результатов?
Я начал писать это сообщение и понял, что я бы хорошо его описал в 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
Спасибо за любые идеи.
О, дерьмо. Конечно. Ску не уникален. Добавление И price_breaks.group = prices.group полностью исправлено это. Я толчок. Спасибо. –