繁体   English   中英

来自 2 个表的最大和最小记录

[英]Max and Min records from 2 tables

我有 2 张桌子。

第一个表有列fileIDcreatedate

第二个表有useridfileIDcreatedate作为公共字段以及其他列。

我正在尝试编写查询以根据特定用户 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM