我正在尝试选择状态为“已完成”的所有笔记。注解存储在自己的表中,在该表中我们有一个注解状态历史记录表,该表具有按noteid排序的外键关系。我如何从where子句(t2)中引用的表中获取数据,这样我就不必再次通过结果循环来获取completedby的数据。
SELECT DISTINCT
t1.NoteId,
t2.CompletedBy-- error
FROM
Note t1
WHERE
EXISTS
(
SELECT
TOP 1 *
FROM
NoteStatus t2
WHERE
t1.NoteId = t2.NoteId
AND t2.Completed = 1
)
2条答案
按热度按时间iecba09b1#
你似乎想要横向连接:
使用相关子查询可以得到相同的结果,但是横向联接使您有机会从查询返回更多的列
notestatus
table,如果你需要的话。distinct
似乎没有意义,所以我删除了它-你可以添加它回来,如果真的需要一些原因,你没有解释。u91tlkcl2#
可以使用显式
join
或者——更简单地说——横向连接:我不知道你为什么需要
SELECT DISTINCT
,所以我把它去掉了。一个名为NoteId
似乎是表calld中的主键Note
.