2016-04-03 3 views
0
SELECT u.user_id, u.website, u.phone, SUM(r.redeem_amount) , SUM(r.redeem_paid) 
FROM users u 
LEFT JOIN redeemed r ON u.user_id = r.redeem_user_id 
WHERE r.redeem_state = '0' 
GROUP BY u.website 

Что я пытаюсь сделать, это выбрать сумму выкупа суммы из таблицы выкуплена против каждого сайта, каждый сайт должен быть выбран это сумма (SUM) от выкупа таблицыMySQL выберите SUM, когда таблица соединяется

Предоставленный запрос может выбирать каждый веб-сайт, но не может выбрать SUM из таблицы redeem, поскольку он выбирает только одну строку из суммы, которую не вычитал итог этого веб-сайта.

Могу ли я обратиться за помощью или указать, где я ошибаюсь и как могу улучшить это. Я знаю, что некоторые из вас могут заплатить за это просто, но я не могу получить трюк, поскольку я не слишком продвинутый в MySQL.

http://sqlfiddle.com/#!9/9eecb7d

+0

Можете ли вы префикс каждый столбец выбора пункта с 'u' или' r' разъяснений? (или лучше предоставить sqlfiddle) –

+0

Группа К чему !! w ??? –

+1

@abu Извините, что я нажимаю неправильную клавишу W instaed of u – FetchLazy

ответ

0

Ну, попробуйте использовать ниже:

ВЫБРАТЬ u.user_id, u.website, u.phone, SUM (r.redeem_amount), SUM ( r.redeem_paid) от пользователей у LEFT JOIN погашены г на u.user_id = r.redeem_user_id ГДЕ r.redeem_state = '0' GROUP BY r.redeem_user_id

Redeem Table

Users Table

Results

+0

Stil получить то же, что и мой запрос – FetchLazy

+0

Его правый @FetchLazy, и ваш вышеуказанный запрос тоже, я протестировал его на Navicat, проверьте ваше условие r .redeem_state = '0' –

+0

Возможно ли увидеть результаты? – FetchLazy

Смежные вопросы