Задать вопрос
alexander7779
@alexander7779
SEO, PHP (разработка на Laravel).

Дублирование данных при нескольких Left Join (Декартово произведение), как убрать?

Привет всем!
уже 2й день не спеша подхожу к этому запросу, но никак пока не поддаётся.
Есть запрос на получение данных из 3х таблиц.
-Товар
-Таблица Характеристик 1
-Таблица Характеристик 2
SELECT
	tx_carmodels.vendor as vendor,
	tx_carmodels.model as model,
	tx_carmodels.year as year,
	tx_carmodels.modification as modification,
tx_tyrespecifications.front_width as tyre_front_width,
tx_tyrespecifications.front_diameter as tyre_front_diameter,
tx_wheelspecifications.front_width as wheel_front_width,
tx_wheelspecifications.front_diameter as wheel_front_diameter
FROM
	tx_carmodels
LEFT JOIN tx_tyrespecifications ON tx_tyrespecifications.carmodel = tx_carmodels.id
LEFT JOIN tx_wheelspecifications ON tx_wheelspecifications.carmodel = tx_carmodels.id
WHERE
tx_carmodels.vendor_url = 'kia'
AND tx_carmodels.model_url = 'rio'
AND tx_carmodels.modification_url = '16i-jb'

соответственно, при выводе данных получается декартово произведение.

Какое правильное решение, для получения данных без дублей с минимальной нагрузкой на базу.
  • Вопрос задан
  • 863 просмотра
Подписаться 1 Простой 2 комментария
Решение пользователя idShura К ответам на вопрос (3)
idShura
@idShura
Нет у тебя никаких дублей, скорее всего в таблицах tx_tyrespecifications и tx_wheelspecifications более одной характеристики для выбранной модели.
Ответ написан