Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL和公司模式_Mysql_Mysql Workbench - Fatal编程技术网

使用MySQL和公司模式

使用MySQL和公司模式,mysql,mysql-workbench,Mysql,Mysql Workbench,我不知道如何列出员工的名字、姓氏、ssn以及家属的姓名和关系(如果家属存在)。我需要使用explicit join列出所有有家属的员工,包括没有家属的员工 架构名称:公司 表名:员工 列名:fname、minit、lname、ssn、bdate、地址、性别、薪水、supersn、dno 表名:相关 列名:essn、从属名称、性别、日期、关系 表名:部门位置 列名:dnumber,dlocation 表名:部门 列名:dnumber、dname、mgrssn、mgrstartdate 表名:项目

我不知道如何列出员工的名字、姓氏、ssn以及家属的姓名和关系(如果家属存在)。我需要使用explicit join列出所有有家属的员工,包括没有家属的员工

架构名称:公司

表名:员工

列名:fname、minit、lname、ssn、bdate、地址、性别、薪水、supersn、dno

表名:相关

列名:essn、从属名称、性别、日期、关系

表名:部门位置

列名:dnumber,dlocation

表名:部门

列名:dnumber、dname、mgrssn、mgrstartdate

表名:项目

列名:pname、pnumber、plocation、dnum

表名:适用于

列名:essn、pno、小时

这是我所拥有的,但它不起作用…所以任何建议都会很好,谢谢

SELECT a.fname, a.lname, a.ssn, b.dependent_name, b.relationship  
FROM `employee` a 
inner JOIN `dependent` b 
WHERE a.bdate=b.bdate;

您的查询将查找与受抚养人生日相同的员工。这只是一个偶然的巧合,并不意味着他们有任何关系

您应该根据员工的SSN加入表。我假设
dependent
中的
essn
列是他们所依赖的员工的SSN

此外,连接条件应该放在
ON
子句中,而不是
WHERE
(尽管MySQL不强制执行)


巴尔马的建议非常正确……只是遗漏了一件事。OP需要列出有受抚养人的员工和没有受抚养人的员工,因此应使用左联接

select a.fname, a.lname, a.ssn, b.dependent_name, b.relationship  
  from employee a
  left join dependent b
    on b.essn = a.ssn;

为什么要比较员工和家属的出生日期?除了
employee
dependent
之外,其他表格与这个问题有什么关系?我不确定要比较什么才能得到这个问题的结果集。我是sql的新手。我应该比较什么?你没有看到我发布的答案吗?SQL的新功能与此有什么关系?这只是对数据如何关联的逻辑思考。
select a.fname, a.lname, a.ssn, b.dependent_name, b.relationship  
  from employee a
  left join dependent b
    on b.essn = a.ssn;