如何选择主表数据和选择引用表一个数据sql查询
我需要一个sql查询,它应该返回主表条目及其子表条目(仅返回最新的一个条目)。我使用了内部连接。但我觉得它不好用。 有人能给我一个适当的问题吗如何选择主表数据和选择引用表一个数据sql查询,sql,stored-procedures,inner-join,Sql,Stored Procedures,Inner Join,我需要一个sql查询,它应该返回主表条目及其子表条目(仅返回最新的一个条目)。我使用了内部连接。但我觉得它不好用。 有人能给我一个适当的问题吗 提前感谢在SQLServer2005+中使用带有操作员的选项 或具有排序功能的选项 ;WITH cte AS ( SELECT *, ROW_NUMBER() OVER(PARTITION BY t1.Id ORDER BY t2.CreatedDate DESC) AS
提前感谢在SQLServer2005+中使用带有操作员的选项 或具有排序功能的选项
;WITH cte AS
(
SELECT *,
ROW_NUMBER() OVER(PARTITION BY t1.Id ORDER BY t2.CreatedDate DESC) AS rn
FROM master t1 JOIN child t2 ON t1.Id = t2.Id
)
SELECT *
FROM cte
WHERE rn = 1
试试这个
SELECT ID, DATE
(
SELECT M.ID, C.DATE, ROW_NUMBER() OVER(PARTITION BY M.ID ORDER BY C.DATE DESC) RN
FROM MASTER M
JOIN CHILD C
ON C.ID = M.ID
) A
WHERE RN = 1
请参考给定的链接,它可能对您在子表中的哪个列排序有用?我需要选择主表中的所有条目,并需要选择其子条目(根据createdDate,顶部条目)@Jidheesh Rajan您需要阅读这些帖子:接受答案如何工作?
SELECT ID, DATE
(
SELECT M.ID, C.DATE, ROW_NUMBER() OVER(PARTITION BY M.ID ORDER BY C.DATE DESC) RN
FROM MASTER M
JOIN CHILD C
ON C.ID = M.ID
) A
WHERE RN = 1