这个查询多次显示每条记录,我的意思是超过25次,为什么?
SELECT
dbo.HrEmployee.EmplID, dbo.HrEmployee.EmplName, dbo.AtdRecord.RecDate,
dbo.AtdRecord.RecTime, dbo.HrDept.DeptName
FROM
dbo.HrDept
RIGHT OUTER JOIN
dbo.HrEmployee ON dbo.HrDept.DeptID = dbo.HrEmployee.DeptID
LEFT OUTER JOIN
dbo.AtdRecord ON dbo.HrEmployee.EmplID = dbo.AtdRecord.EmplID
我尝试过分明但没有任何效果
我正在尝试发布数据库结构
答案 0 :(得分:1)
连接对返回的行数的影响取决于您要加入的两个表之间的关系的基数以及与您的连接条件匹配的记录数。如果您看到行数增加,则表示您加入了1:M或M:M关系。在这里回答你的问题需要知道的是HrDept,HrEmployee和AtdRecord之间的关系。
我猜HrEmployee:AtdRecord是1:M。
答案 1 :(得分:1)
根据您的理解,试试这个
SELECT
dbo.HrEmployee.EmplID, dbo.HrEmployee.EmplName, dbo.AtdRecord.RecDate,
dbo.AtdRecord.RecTime, dbo.HrDept.DeptName
FROM
dbo.AtdRecord
INNER JOIN
dbo.HrEmployee ON dbo.HrEmployee.EmplID = dbo.AtdRecord.EmplID
INNER JOIN
dbo.HrDept ON dbo.HrDept.DeptID = dbo.HrEmployee.DeptID