MySQL Max (isnull (date_field)) или max (coalesce (date_field)) - PullRequest
0 голосов
/ 08 июля 2011

У меня есть запрос на чтение даты из отношений родитель / ребенок, и я необходимо сгруппировать записи по максимуму даты, в зависимости от того, таблицы это приходит. Мой запрос:

SELECT child.id as id, 
       MAX(pm.start), 
       MAX(membership.start),
       MAX(IFNULL(pm.start,membership.start)) AS start 
FROM   organisation child
LEFT JOIN organisation pmorg ON child.parent_organisation_id = pmorg.id
LEFT JOIN membership ON child.id = membership.organisation_id
LEFT JOIN membership pm ON pmorg.id = pm.organisation_id

WHERE child.id IN (1,3) AND /*just look at example records*/

    coalesce(pm.start,membership.start) IS NOT NULL AND
    ((membership.active = 1 AND membership.amount_paid > 0.00 ) OR
     (pm.active = 1 AND pm.amount_paid > 0.00))

GROUP BY child.id

Мой вывод странный:

1       NULL                    2011-07-01 00:00:00 323031312d30372d30312030303a30303a3030
3       2011-07-01 00:00:00     NULL                323031312d30372d30312030303a30303a3030

Мне нужно, чтобы последний столбец был 2011-07-01, и мне нужны обе строки. любой идея, почему max (coalesce ()) не работает? Я использую MySQL 5.1

1 Ответ

0 голосов
/ 08 июля 2011

Тупо этот запрос прерывается только в PHPMyAdmin и прекрасно работает в командной строке mysql. Так что здесь нет проблем!

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