如何在SQL Server中连接三个表?

时间:2014-04-30 13:07:23

标签: sql-server sql-server-2008

我的查询没有加入SQL Server中的三个表。

代码:

    SELECT Ledger.ledger_id,
           Ledger.std_reg_id,
           Ledger.fee_of_month,
           Ledger.ledger_date,
           Ledger.fees,
           Other_Fees.other_fees_id,
           Other_Fees.title
    FROM Ledger
    INNER JOIN Other_Fees
           ON Ledger.other_fees_id = Other_Fees.other_fees_id
    INNER JOIN Std_Profile
           ON Ledger.std_reg_id = Std_Profile.std_reg_id

1 个答案:

答案 0 :(得分:3)

INNER JOIN 只会返回两个表中匹配的记录。在3个表之间,可能没有相同的匹配数据。尝试使用 LEFT JOIN ,看看它是否返回任何内容。通过使用 LEFT JOIN ,您至少应该从dbo.Ledger获取所有内容。

此外,您应该像这样对表进行别名:

SELECT 
   L.ledger_id,
   L.std_reg_id,
   L.fee_of_month,
   L.ledger_date,
   L.fees,
   F.other_fees_id,
   F.title
FROM dbo.Ledger L
LEFT JOIN dbo.Other_Fees F
ON L.other_fees_id = F.other_fees_id
LEFT JOIN dbo.Std_Profile P
ON L.std_reg_id = P.std_reg_id