我需要使用 t-sql 来查询两个表。第一个表是书籍。第二个表是作者。对于每个 Book 记录,可能有多个子 Author 记录。我想编写一个查询,它只返回为当前 Book 记录找到的第一个 Author 记录。表中有数十万条记录,因此我需要高效的查询。
select a.FirstName, a.LastName, b.BookName
from Books b
left join
(
select TOP 1 t.BookID, t.FirstName, t.LastName
from Authors t
) a
on a.BookID = b.BookID
where b.BookClassification = 2
这个查询是不对的。我只想选择与 BookID 匹配的 Authors 中的前 1 条记录。我怎样才能得到我正在寻找的结果?