Sql server 2005 连接两个表:第一个表中的所有行与第二个表中的子集
这应该很简单,但无论我尝试什么,我都无法获得我想要的数据。。。 我有两张桌子: 依赖dSql server 2005 连接两个表:第一个表中的所有行与第二个表中的子集,sql-server-2005,Sql Server 2005,这应该很简单,但无论我尝试什么,我都无法获得我想要的数据。。。 我有两张桌子: 依赖d empID relID dob 100 1 8/8/1988 100 2 1/1/2001 200 1 9/9/1989 员工e empID 100 200 300 我需要像这样加入: 所需结果(其中仅包括relID=1的DOB) 无论我使用哪种联接,我最终只得到相交的记录(dependent中的empID有一个relID=1的记录),如下所示:
empID relID dob
100 1 8/8/1988
100 2 1/1/2001
200 1 9/9/1989
员工e
empID
100
200
300
我需要像这样加入:
所需结果(其中仅包括relID=1的DOB)
无论我使用哪种联接,我最终只得到相交的记录(dependent中的empID有一个relID=1的记录),如下所示:
实际结果(见下面的查询)
我错过了什么/做错了什么
谢谢你的关注 使过滤器成为连接条件的一部分:
SELECT e.empID, d.dob
FROM employee AS e
LEFT OUTER JOIN dependent AS d
ON e.empID = d.empID
AND d.relID = 1
非常感谢。我很难为情地说我对此困惑了多久,但一个简单的答案是最受欢迎的!
e.empID d.dob
100 8/8/1988
200 9/9/1989
SELECT e.empID, d.dob
FROM employee AS e LEFT OUTER JOIN dependent AS d ON e.empID = d.empID
WHERE (d.relID = 1)
SELECT e.empID, d.dob
FROM employee AS e
LEFT OUTER JOIN dependent AS d
ON e.empID = d.empID
AND d.relID = 1