在sql server中从一个表到另一个表获取记录

在sql server中从一个表到另一个表获取记录,sql,sql-server-2008,join,Sql,Sql Server 2008,Join,我正在使用SQLServer2008进行我的项目。我有两个名为1的表客户发票2订单。 并且这两个表都有Customer\u Invoice\u ID列。在Customer\u Invoice表中作为PK和在Orders表中作为FK 现在我的要求是从Customer\u Invoice表中获取前100条记录,然后对于每个Customer\u Invoice\u ID,我需要orders表中的所有记录。因此,我需要订单表中的所有记录,其中Customer\u Invoice\u ID存在于Custo

我正在使用SQLServer2008进行我的项目。我有两个名为1的表<代码>客户发票2<代码>订单。 并且这两个表都有
Customer\u Invoice\u ID
列。在
Customer\u Invoice
表中作为
PK
和在
Orders
表中作为
FK

现在我的要求是从Customer\u Invoice表中获取
前100条记录,然后对于每个Customer\u Invoice\u ID,我需要orders表中的所有记录。因此,我需要订单表中的所有记录,其中Customer\u Invoice\u ID存在于Customer\u Invoice表中

所以首先,

Select top 100 * from Customer_Invoice
然后针对每个
客户\u发票\u ID
订单表中获取记录

有谁能指导我如何为同样的问题编写查询吗?

试试这个-

SELECT t.* 
FROM dbo.[Order] o
OUTER APPLY (
     SELECT TOP 100 * 
     FROM dbo.Customer_Invoice
     WHERE t.Customer_Invoice_ID = o.Customer_Invoice_ID
) t
试试这个

SELECT * FROM Orders WHERE Customer_Invoice_ID IN 
            (Select top 100 Customer_Invoice_ID from Customer_Invoice)