私は少しのmysqlクエリ脳凍結を持っています。私は2番目の列でグループ化されたテーブルから最新のレコードを取得する必要があります。このような何か:最新のレコードを取得
SELECT ca.id, ca.activity_date, cat.contact_id as cid
FROM activity ca
JOIN activity_target cat
ON ca.id = cat.activity_id
WHERE ca.activity_type_id = 44
GROUP BY cid
ORDER BY activity_date DESC
...ことを除いては、私が最も最近のレコード(activity_dateを使用して)(グループの後に実行されることにより、順序)によって内のグループを必要としています。 HAVING activity_date = max(activity_date)を使用してみましたが、動作しません。あなたのスキーマを見ずに
SELECT ca.id, ca.activity_date, cat.contact_id as cid
FROM activity ca
JOIN activity_target cat
ON ca.id = cat.activity_id
WHERE ca.activity_type_id = 44
and ca.id = (SELECT id from activity a
join activity_target t on a.id = t.activity_id
WHERE t.contact_id = cat.contact_id
ORDER BY activity_date DESC LIMIT 1)
ORDER BY activity_date DESC
私は確かに言うことはできない、と私は、MySQLおよびMicrosoft SQL Serverの間の違いでビットを推測している:
「contact_id」はどのテーブルに属していますか? –
フィールドのソースを指定するために編集しました。 – lcdservices
'activity_target'の主キーは何ですか? –