私は親子関係から日付を読み取るクエリを持っており、 テーブルこれは来る。マイクエリ:MySQL最大(isnull(date_field))または最大(coalesce(date_field))
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を実行しています
は 'coalesce(max(date)、max(otherdate))'であってはなりませんか? – bfavaretto
ありがとうbfavaretto、私はこの場合もうまくいくと思います – jdog