как не отображать дубликат с левым соединением

#mysql #sql #database

#mysql #sql #База данных

Вопрос:

У меня есть 4 таблицы:

 client: (id, organisme, nom, adresse)

lot: (idLot, id, objetLot, prix)

option: (idOption,idLot,id,prixOption)

variante: (idVariante, idLot, prixVariante)
  

Я хотел бы отобразить все записи из client с разными price about lot .

Но иногда у меня появлялись некоторые опции на lot и или некоторые variante на lot .

Вот так : введите описание изображения здесь

Но проблема в том, что я получил это : введите описание изображения здесь

Я показываю вам свой запрос :

 SELECT C.*, L.*, O.*, V.*
FROM 
  client as C
  LEFT JOIN lot as L 
    ON C.id = L.id
  LEFT JOIN option2 as O 
    ON O.id = C.id 
  LEFT JOIN variante as V 
    ON V.id = C.id 
WHERE 
  nomDossier LIKE '%$mc%';
  

Комментарии:

1. Я бы предложил использовать sqlfiddle для такого рода вопросов, это действительно очень помогает

2. Неясно, почему в вашем желаемом результате меньше строк, чем фактический результат. Каковы правила, касающиеся элементов, которые вы хотите удалить? И почему некоторые столбцы пустые? И почему prixVariante значение, которое фактически заполнено, не соответствует ни одному из значений в таблице? Почему одно из prixOption значений не соответствует ни одному из значений в таблице? Эти два даже из одного набора данных? Вы надеетесь сгруппировать и суммировать некоторые значения? Это не очевидно. Пожалуйста, уточните свое намерение и свою логику.

3. Большинству людей здесь нужны образцы табличных данных и ожидаемый результат в виде форматированного текста, а не в виде изображений. Также обратите внимание, что короткие, простые значения легче получить, чем длинные, сложные / похожие. Например. используйте r1 и r2 вместо nettyyong ricoacoalere 1 и nettyyong ricoacoalere 2 .