2016-02-02 3 views
0

У меня есть следующий запрос и возвращает мне 360 записей с дубликатами, даже если я добавил отчетливый:MySQL запрос возвращая мне несколько результатов

SELECT DISTINCT 
leads.FirstName, 
leads.LastName, 
calls.callDate, 
calls.callstatus, 
calls.calllog, 
calls.whoCalled, 
notes.Notes, 
notes.`TimeStamp`, 
messages.sentDate, 
messages.`subject`, 
messages.greeting, 
messages.message, 
messages.toEmail, 
messages.whoSent 
FROM 
leads 
left JOIN calls ON calls.LeadID = leads.LeadID 
right join notes on leads.LeadID = notes.LeadID 
right join messages on leads.LeadID = messages.LeadID where leads.leadid = 208 

select * from notes where leadid = 208 - имеет 3 записи:

select * from messages where leadid = 208 его имеет 15 записей

select * from calls where leadid = 208 это 8 записей

+3

3 × 15 × 8 = 360 записей. – Pang

+0

Вам действительно нужны все, кто возвращается в ваш выбор? –

+0

Используйте 'group by' для устранения дубликатов – Khaleel

ответ

0

Изменить where положение, чтобы избавиться от NULL VALU es присоединившихся столов

WHERE calls.LeadID IS NOT NULL AND notes.LeadID IS NOT NULL AND 
messages.LeadID IS NOT NULL AND leads.leadid = 208 
+0

не имеет значения –

+0

Не могли бы вы показать мне образец вывода? –

+0

удалось исправить, использовать объединение для вызова 3 таблиц и назвал столбцы одинаковыми с использованием alais и '' как для отсутствующих столбцов из одной таблицы. и добавил последний столбец в качестве имени таблицы, который несет имя имени табуляции, чтобы правильно отображать данные. –