2010-12-17 29 views
0

コメントの数と最後のコメントの日付、各項目の項目を表示したい。SQL:コメント数と最新のコメント日付の項目を選択

SELECT item.*, 
    count(comments.itemid) AS commentcount, 
    comments.created AS commentcreated 
FROM table_items AS item 
LEFT JOIN table_comments AS comments ON (comments.itemid = item.id) 
WHERE item.published=1 
GROUP BY item.id 
ORDER BY item.created DESC 

ここで、commentcreated値は、最初のコメントの日付です。最後のコメントが必要です。 LEFT JOINでの注文は動作しません。これはどのように達成できますか?

答えて

2

はあなたが最大()、分()、または他の集約関数のいずれかで使用するために、グループ内の日付のどのMySQLを伝える必要があり

SELECT item.*, 
    count(comments.itemid) AS commentcount, 
    max(comments.created) AS commentcreated 
FROM table_items AS item 
LEFT JOIN table_comments AS comments ON (comments.itemid = item.id) 
WHERE item.published=1 
GROUP BY item.id 
ORDER BY item.created DESC 

を試してみてください。

+0

はい、ありがとうございます!これは動作します!しかし、最新のコメントのタイトルを選択したいのですが? – Bert

+0

私はそれが別の問題だと思います。 – Jaydee