何时使用左外部联接?
我不了解左外部联接,右外部联接的概念,或者根本不理解为什么我们需要使用联接!我正在努力解决的问题以及正在处理的表格在这里:链接
在SQL中构造命令以解决以下查询,解释了为什么必须使用(外部)联接方法。[5分]“找到每名工作人员及其his属(如果有)的姓名”
使用(i)join方法和(ii)子查询方法在SQL中构造命令以解决以下查询。[10分]“查找在计算机化项目上工作超过20小时的每位工作人员的身份名称”
谁能简单地向我解释一下?
回答:
联接用于将两个相关的表组合在一起。
在您的示例中,您可以组合Employee表和Department表,如下所示:
SELECT FNAME, LNAME, DNAMEFROM
EMPLOYEE INNER JOIN DEPARTMENT ON EMPLOYEE.DNO=DEPARTMENT.DNUMBER
这将导致一个记录集,如:
FNAME LNAME DNAME----- ----- -----
John Smith Research
John Doe Administration
我用INNER JOIN
上面的。INNER JOIN
s将两个表组合在一起,以便 仅 显示两个表中具有匹配项的记录,并且在这种情况下,将它们
连接 到部门编号(Employee中的字段DNO,Department表中的DNUMBER)。
LEFT JOIN
使用s可以在第一个表中有记录但第二个表中 记录时合并两个表。例如,假设您要列出所有雇员以及所有受抚养者的列表:
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_last, DEPENDENT.LNAME as dependent_lastFROM
EMPLOYEE INNER JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
这里的问题是,如果员工 没有 受抚养人,那么他们的记录将根本不会显示-因为DEPENDENT表中没有匹配的记录。
因此,使用 左 连接将所有数据保留在“左”(即第一个表)上,并将所有匹配的数据保留在“右”(第二个表)上:
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_first, DEPENDENT.LNAME as dependent_lastFROM
EMPLOYEE LEFT JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
现在,我们获得了 员工记录。如果给定员工没有匹配的受抚养人,则dependent_first
和dependent_last
字段将为空。
以上是 何时使用左外部联接? 的全部内容, 来源链接: utcz.com/qa/410081.html