SQL: невозможно использовать значения в порядке убывания при использовании группировки по - PullRequest
1 голос
/ 20 декабря 2011

я объединяю и получаю значения из двух таблиц, используя запрос ниже.Значения отображаются в порядке убывания.

Leads
63697       Ben
63698       Ben
63699       Ben
63700       Ben
63701       Ben


log

2   63697       Ben         10%     Qualifying
3   63697       Ben         20%     Qualifying
4   63697       Ben         30%     Qualifying
6   63698       Ben         30%     Qualifying
8   63698       Ben     80%     Quoted
10  63698       Ben         70%     Quoted

Я хочу отобразить,

63697       Ben         30%     Qualifying
63698       Ben         70%     Quoted
63699       Ben
63700       Ben
63701       Ben

Проблема заключается в том, что при использовании запроса

SELECT leads.id,leads.name, log.prob, log.current_stage FROM leads LEFT JOIN log ON log.leadid = leads.id WHERE leads.name = '$name' ORDER BY log.id DESC

Он отображает все детали для таблицы журнала в порядке убывания.Но когда я пытаюсь сгруппировать их,

SELECT leads.id,leads.name, log.prob, log.current_stage FROM leads LEFT JOIN log ON log.leadid = leads.id WHERE leads.name = '$name' GROUP BY log.leadid ORDER BY log.id DESC

Он извлекает значения в порядке возрастания из таблицы журналов

63697       Ben         10%     Qualifying
63698       Ben         30%     Qualifying
63699       Ben
63700       Ben
63701       Ben

Может кто-нибудь сказать мне, что я здесь не так делаю?

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011
SELECT * FROM (
SELECT leads.id,leads.name, log.prob, log.current_stage, log.id AS logid FROM leads LEFT JOIN log ON log.leadid = leads.id WHERE leads.name = '$name' GROUP BY log.leadid
) ORDER BY logid DESC

Видел это довольно часто, просто заверните его в суперзапрос, как показано.

0 голосов
/ 20 декабря 2011

Вы заказываете по log.id, который не является выбранным вами полем. Вы не можете сделать это, так как ORDER BY вычисляется после директивы SELECT.

Измените ORDER BY log.id для ORDER BY lead.id, который является единственным идентификатором, который я вижу в вашей директиве SELECT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...