我试图加入 3 个表 - CurrentProducts、SalesInvoice 和 SalesInvoiceDetail。SalesInvoiceDetail 包含其他两个表和其他一些列的 FK/外键。第一个查询是好的,但第二个不是。我的问题出现在代码的末尾。
正确的
select *
from CurrentProducts inner join
(dbo.SalesInvoiceDetail inner join dbo.SalesInvoice
on dbo.SalesInvoiceDetail.InvoiceID = dbo.SalesInvoice.InvoiceID
)
on dbo.SalesInvoiceDetail.ProductID = dbo.CurrentProducts.ProductID
错误的
select *
from CurrentProducts inner join
(select * from
dbo.SalesInvoiceDetail inner join dbo.SalesInvoice
on dbo.SalesInvoiceDetail.InvoiceID = dbo.SalesInvoice.InvoiceID
)
on dbo.SalesInvoiceDetail.ProductID = dbo.CurrentProducts.ProductID
错误 - 关键字“on”附近的语法不正确。
为什么第二个查询错误?它在概念上与第一个不一样吗?那就是在 join 里面创建一个结果集。我们选择 * 结果集,然后将此结果集加入 CurrentProducts ?