0

親子関係から日付を読み取るクエリがあり、日付の最大値でレコードをグループ化する必要があります。これは、どのテーブルからのものでもかまいません。私の質問:

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())が機能しない理由はありますか?MySQL5.1を実行しています

4

1 に答える 1

0

愚かなことに、このクエリはPHPMyAdminでのみ機能し、mysqlコマンドラインで完全に正常に機能します。したがって、ここではまったく問題はありません。

于 2011-07-08T04:42:47.503 に答える