2015-04-11 2 views
-1

У меня есть три таблицы, и я хочу присоединиться к ним.Соедините три таблицы, используя один запрос

Объединение двух таблиц отлично работает, но присоединение трех таблиц возвращает одну строку только

Таблица имен

  • UserDetails
  • saletrack
  • paymentDetails

Запрос # 1:

SELECT 
    `userdetails`.CustomerIndex, 
    `userdetails`.FristName, 
    SUM(`paymentdetails`.Amountofpaying) TotalPaid 
FROM 
    `userdetails` 
LEFT JOIN 
    `paymentdetails` ON `userdetails`.CustomerIndex=`paymentdetails` .CustomerID 
GROUP BY 
    `userdetails`.CustomerIndex,`userdetails`.FristName 

Запрос # 2:

SELECT 
    `userdetails`.CustomerIndex, 
    `userdetails`.FristName, 
    SUM(`saletrack`.Total) Totalbilled 
FROM 
    `userdetails` 
LEFT JOIN 
    `saletrack` ON `userdetails`.CustomerIndex = `saletrack`.CustomerId 
GROUP BY 
    `userdetails`.CustomerIndex, `userdetails`.FristName 

Запрос # 3:

SELECT 
    s.CustomerId, 
    SUM(s.Total) Totalbilled, 
    p.CustomerID, 
    SUM(p.Amountofpaying) TotalPaid 
FROM 
    `userdetails` AS ud 
LEFT JOIN 
    `saletrack` AS s ON ud.CustomerIndex = s.CustomerId 
LEFT JOIN 
    `paymentdetails` AS p ON ud.CustomerIndex = p.CustomerID 
WHERE 
    p.CustomerID = ud.CustomerIndex 
    AND s.CustomerId = ud.CustomerIndex 
LIMIT 0 , 30 
+0

Показать некоторые выборочные данные и ожидаемый результат. –

+0

Либо это 'mysql', либо это (Microsoft)' sql-server', но он не может быть одновременно одновременно. Пожалуйста, удалите дополнительный тег базы данных, чтобы сделать вещи понятными. –

ответ

1

Как уже упоминалось ud.CustomerIndex = s.CustomerId & & ud.CustomerIndex = p.CustomerID в присоединяется, тогда нет необходимости снова вводить условие. Попробуйте это:

SELECT s.CustomerId, SUM(s.Total) Totalbilled, p.CustomerID, SUM(p.Amountofpaying) TotalPaid 
FROM `userdetails` AS ud 
LEFT JOIN `saletrack` AS s ON ud.CustomerIndex = s.CustomerId 
LEFT JOIN `paymentdetails` AS p ON ud.CustomerIndex = p.CustomerID 
LIMIT 0 , 30 
+0

чувак тоже возвращается только одна строка –

+0

проверить это изображение, чтобы увидеть данные и что я ожидаю [1]: http://i.stack.imgur.com/fOlB4.jpg –

0

нам нужно добавить сгруппированных по запросу

SELECT s.CustomerId, SUM(s.Total) Totalbilled, p.CustomerID, SUM(p.Amountofpaying) TotalPaid 
FROM `userdetails` AS ud 
LEFT JOIN `saletrack` AS s ON ud.CustomerIndex = s.CustomerId 
LEFT JOIN `paymentdetails` AS p ON ud.CustomerIndex = p.CustomerID 
WHERE p.CustomerID = ud.CustomerIndex 
AND s.CustomerId = ud.CustomerIndex 
***GROUP BY ud.CustomerIndex, ud.FristName*** 
LIMIT 0 , 30 
Смежные вопросы