【发布时间】:2015-08-01 19:42:25
【问题描述】:
我想要的结果。
+--------+-------------+------------+--------+ |标签 |最近 |评论 |作者 | +--------+-------------+------------+--------+ |标签001 | 2015-07-23 |东西3 |上午 | |标签002 | 2015-07-25 |东西5 |国阵 | +--------+-------------+------------+--------+我的桌子:
状态表格
+--------+-------------+------------+ |标签 |状态 |日期状态 | +--------+-------------+------------+ |标签001 |未开始 | | |标签002 |完成 | 2015-07-23 | +--------+-------------+------------+评论表格
+----+--------+-------------+------------+-------- + |身份证 |标签 |创建日期 |评论 |作者 | +----+--------+-------------+------------+-------- + | 1 |标签001 | 2015-07-22 |东西1 | JS | | 2 |标签002 | 2015-07-23 |东西2 | JS | | 3 |标签001 | 2015-07-23 |东西3 |上午 | | 4 |标签002 | 2015-07-23 |东西4 |作为 | | 5 |标签002 | 2015-07-25 |东西5 |国阵 | +----+--------+-------------+------------+-------- +我尝试了 4 种不同的查询,每一种都变得越来越复杂,但仍然无法正常工作。
我尝试过的查询:
查询 1)
SELECT Comments.[Tag], Max(Comments.[DateCreated]) AS most\_recent
FROM Comments
GROUP BY Comments.[Tag];
结果 1)
+--------+-------------+ |标签 |最近 | +--------+-------------+ |标签001 | 2015-07-23 | |标签002 | 2015-07-25 | +--------+-------------+只给我最近的日期,但没有值。
查询 2)
SELECT Comments.[Tag], Max(Comments.[DateCreated]) AS most\_recent
FROM Comments
GROUP BY Comments.[Tag];
结果 2)
+--------+-------------+------------+ |标签 |最近 |评论 | +--------+-------------+------------+ |标签001 | 2015-07-22 |东西1 | |标签001 | 2015-07-23 |东西3 | |标签002 | 2015-07-23 |东西2 | |标签002 | 2015-07-23 |东西4 | |标签002 | 2015-07-25 |东西5 | +--------+-------------+------------+现在我看到了我想要的所有信息,但我无法过滤最新的信息。
我尝试了 DISTINCT,但没有成功。
查询 3)
从这里修改:MYSQL - Join most recent matching record from one table to another
SELECT Status.\*,Comments.\*
FROM Status S
LEFT JOIN Comments C ON S.tag = C.tag
JOIN(SELECT x.tag, MAX(x.DateCreated) AS MaxCommentDate FROM Comments x
GROUP BY x.tag) y ON y.tag = x.tag AND y.MaxCommentDate = x.DateCreated
结果:查询表达式中的语法错误(缺少运算符)
查询 4)
从这里修改: Left Join to most recent record
SELECT
Status.\*,Comments.\*
FROM Status S
LEFT JOIN
(
Comments C
INNER JOIN
(
SELECT
x.tag, MAX(x.DateCreated) AS MaxCommentDate
FROM
Comments x
GROUP BY
x.tag
)
y
ON y.tag = x.tag
AND y.MaxCommentDate = x.DateCreated
)
ON S.tag = C.tag;
结果:JOIN 语法错误
运气不好...先谢谢了。
谢谢。
【问题讨论】:
标签: ms-access join ms-access-2010 left-join