[英]Max and Min records from 2 tables
我有 2 张桌子。
第一个表有列fileID
, createdate
。
第二个表有userid
, fileID
, createdate
作为公共字段以及其他列。
我正在尝试编写查询以根据特定用户 ID 的创建日期查找最新的fileid(max)
和第一个加载的fileid(min)
,方法是加入这两个表并在文件 ID 上使用createdate
,在查询中创建日期并过滤用户 ID在 where 子句中。
但是结果显示所有行。
我需要一个关于如何编写查询的建议,以便仅从这两个表中获取 2 条记录(最大和最小 fileid 记录),而不是所有具有这些字段更改的记录。
我正在使用 SQL Server 编写查询。
谢谢你的帮助。
要按最早或createdate
的创建日期选择fieldid
并将其放在两个单独的行中,您可以尝试这样的事情:
SELECT fileid, "earliest" as type FROM table1 WHERE createdate = (SELECT MIN(createdate) from table1) LIMIT 1
UNION ALL
SELECT fileid, "lattest" as type FROM table1 WHERE createdate = (SELECT MAX(createdate) from table1) LIMIT 1
目前还不清楚,为什么要将它与第二个表连接起来,但你可以这样做:
SELECT
*
FROM
(
SELECT fileid, "earliest" as type FROM table1 WHERE createdate = (SELECT
MIN(createdate) from table1) LIMIT 1
UNION ALL
SELECT fileid, "lattest" as type FROM table1 WHERE createdate = (SELECT
MAX(createdate) from table1) LIMIT 1
) as subquery1
LEFT JOIN
table2 on table2.fileid = createdate.fileid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.