Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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 SQL查询Ailas问题_Mysql_Sql - Fatal编程技术网

Mysql SQL查询Ailas问题

Mysql SQL查询Ailas问题,mysql,sql,Mysql,Sql,这是我的问题。我只是不知道该从哪里开始。 列出每位员工的名字、姓氏和职务,以及其主管的名字、姓氏和职务;没有主管的员工的主管值应为空。仅将主管的列别名为SuperFirst、SuperLast和SuperTitle;列的顺序应为firstname、LastName、Title、SuperFirst、SuperLast和supertitle 这是ER图: 这里的问题是什么?请为我们提供一个明确的问题。 下面的例子供参考 LEFT Join返回所有员工所有有主管和没有主管的结果。那些没有的将在“S.

这是我的问题。我只是不知道该从哪里开始。 列出每位员工的名字、姓氏和职务,以及其主管的名字、姓氏和职务;没有主管的员工的主管值应为空。仅将主管的列别名为SuperFirst、SuperLast和SuperTitle;列的顺序应为firstname、LastName、Title、SuperFirst、SuperLast和supertitle

这是ER图:


这里的问题是什么?请为我们提供一个明确的问题。 下面的例子供参考

LEFT Join返回所有员工所有有主管和没有主管的结果。那些没有的将在“S.*”列中有一个空值。这应该能满足你的需要

SELECT FirstName, LastName, Title, S.FirstName AS SuperFirst, S.LastName AS SupertLast, S.Title AS SuperTitle
FROM dbo.Employee E
LEFT JOIN dbo.Employee S ON E.ReportsTo = S.EmployeeID

这里的问题是什么?请为我们提供一个明确的问题。 下面的例子供参考

LEFT Join返回所有员工所有有主管和没有主管的结果。那些没有的将在“S.*”列中有一个空值。这应该能满足你的需要

SELECT FirstName, LastName, Title, S.FirstName AS SuperFirst, S.LastName AS SupertLast, S.Title AS SuperTitle
FROM dbo.Employee E
LEFT JOIN dbo.Employee S ON E.ReportsTo = S.EmployeeID

您正在下面的
Employee
表中查找自联接,因为它引用自身

SELECT emp.FirstName
    ,emp.LastName
    ,emp.Title
    ,super.FirstName as SuperFirst
    ,super.LastName as SuperLast
    ,super.Title as SuperTitle
FROM employee emp
LEFT JOIN employee super ON emp.reportsto = super.EmployeeId
ORDER BY 1
    ,2
    ,3
    ,4
    ,5
    ,6;

如果没有检索到匹配的值,
Left join
将在主管列中放置
null

您正在
Employee
表中查找自联接,如下所示,因为它引用了自身

SELECT emp.FirstName
    ,emp.LastName
    ,emp.Title
    ,super.FirstName as SuperFirst
    ,super.LastName as SuperLast
    ,super.Title as SuperTitle
FROM employee emp
LEFT JOIN employee super ON emp.reportsto = super.EmployeeId
ORDER BY 1
    ,2
    ,3
    ,4
    ,5
    ,6;

如果没有检索到匹配的值,
Left join
将把
null
放在Supervisor列中。

就像前面提到的,当Left join没有匹配时,您应该能够得到null。这个代码应该可以工作

选择Employee.FirstName、Employee.LastName、Employee.Title、Emp.FirstName作为SuperFirst、Emp.LastName作为SuperLast、Emp.Title作为SupperTitle

从Employee LEFT JOIN Employee AS Emp ON Employee.ReportsTo=EmployeeTwo.EmployeeId
与前面提到的一样,当左入时,如果没有匹配项,则应该能够获取NULL。这个代码应该可以工作

选择Employee.FirstName、Employee.LastName、Employee.Title、Emp.FirstName作为SuperFirst、Emp.LastName作为SuperLast、Emp.Title作为SupperTitle

从Employee LEFT开始,在Employee.ReportsTo=EmployeeTwo.EmployeeId上以Emp身份加入Employee,抱歉,这里是(查询)问题。列出每位员工的名字、姓氏和职务,以及其主管的名字、姓氏和职务;没有主管的员工的主管值应为null。仅将主管的列别名为SuperFirst、SuperLast和SuperTitle;列的顺序应为FirstName、lastname、title、SuperFirst和S这是整个问题,我想我的主要问题是我不明白如何将员工和他们的主管联系起来,因为我没有看到任何主管属性。我在ER图表中没有看到主管表,并且字段没有正确命名以显示清楚的表关系。例如:如果员工表链接到客户表,则员工表的主键将为“ID”,而其在客户表中的外键将标记为“员工ID”。这是一般的SQL标准。不可否认,您的ER图使这比预期的要困难得多。仅举个例子,如果表是以这种方式关联的,则这将是一种执行此类SQL查询的方法。抱歉,这里是(查询)问题。列出每位员工的名字、姓氏和职务,以及其主管的名字、姓氏和职务;没有主管的员工的主管值应为null。仅将主管的列别名为SuperFirst、SuperLast和SuperTitle;列的顺序应为FirstName、lastname、title、SuperFirst和S这是整个问题,我想我的主要问题是我不明白如何将员工和他们的主管联系起来,因为我没有看到任何主管属性。我在ER图表中没有看到主管表,并且字段没有正确命名以显示清楚的表关系。例如:如果员工表链接到客户表,则员工表的主键将为“ID”,而其在客户表中的外键将标记为“员工ID”。这是一般的SQL标准。诚然,你的ER图让这比它想象的要困难得多。举个例子,如果表之间的关系是以这种方式编辑的,这将是一种SQL查询的方式。ORDER BY会如何影响这个查询?@JohnW:在你的问题中,您提到数据应该按FirstName、LastName、Title、SuperFirst、SuperLast和supertitle排序。因此,它会分别对数据进行排序。@JohnW:wae的查询将失败,并出现“FirstName column is dimensional”的情况。ORDER BY对该查询有何影响?@JohnW:在您的问题中,您提到数据应按FirstName、LastName、Title、SuperFirst、SuperLast和supertitle排序。因此,它会分别对数据进行排序。@JohnW:wae的查询将失败,并出现“FirstName column is dimensional”请分享您的努力,否则您的家庭作业将无法完成。请分享您的努力,否则您的家庭作业将无法完成。