这会将 a 与具有最新日期的相应 b 连接起来,如果有多个 b 匹配该条件,则 b 具有最高 id。b.id 和 a.id 被假定为唯一的(或主键)。
SELECT a.id
, b.id
, b.date
FROM a
JOIN b
ON a.id = b.a_id
LEFT JOIN b AS b2
ON b.a_id = b2.a_id
AND (b.date, b.id) < (b2.date, b2.id)
WHERE b2.id IS NULL
;
这是我尝试将您的表格与您的逻辑一起使用。请注意,我指的是 tt.pk。此 pk 表示预期行为的唯一键或主键。您没有提供足够的详细信息来了解此信息。我还没有测试过下面的 SQL。上面的测试SQL已经测试过了。
SELECT p.post_title
, tt.cntaccess
, p.ID
, tt.pk
FROM wp_posts AS p
JOIN wp_top_ten AS tt
ON p.id = tt.postnumber
AND tt.cntaccess > '10'
LEFT JOIN wp_top_ten as tt2
ON tt.postnumber = tt2.postnumber
AND tt2.cntaccess > '10'
AND (tt.date, tt.pk) < (tt2.date, tt2.pk)
WHERE tt2.postnumber IS NULL
AND p.post_date > '2000-01-02 00:00:00'
;