我的查询没有加入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
答案 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