我有两个表,EMPLOYEE
和 DEPENDENT
。员工 PK
是 SSN
,从属表的外键是 ESSN
。我正在尝试检索所有员工的姓名及其家属的姓名。如果员工没有家属,我只需在家属列中显示空白值即可。
要检索有家属的员工姓名,我使用以下语句:
SELECT
firstName AS "First Name",
lastName AS "Last Name",
dependent_name AS "Dependent Name"
FROM employee,dependent
WHERE ssn=essn;
如果有人能引导我走向正确的方向,我将不胜感激。
最佳答案
使用左连接
从第一个表中获取所有行,即使第二个表中没有匹配的行:
SELECT
firstName AS "First Name",
lastName AS "Last Name",
dependent_name AS "Dependent Name"
FROM employee
LEFT JOIN dependent ON dependent.essn = employee.ssn;
我也将您的隐式旧式连接更改为符合 ANSI 的显式连接。
关于MySQL 语句显示值,即使是 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177234/