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_Relational Database - Fatal编程技术网

检查mysql查询是否为问题提供了最佳解决方案

检查mysql查询是否为问题提供了最佳解决方案,mysql,relational-database,Mysql,Relational Database,列出在该公司工作的所有员工的姓名和地址 代码为1且小时工资率为40欧元的员工类型 我想知道这是否是从上述问题中检索信息的最佳方式 SELECT e.EmployeeName , e.EmployeeAddress FROM Employee e JOIN EmployeeType et ON e.EmployeeType = et.EmployeeType HAVING e.EmployeeCode = (1) AND et.TotalPay = (40); 我不会在这个查询中使用HAVING

列出在该公司工作的所有员工的姓名和地址 代码为1且小时工资率为40欧元的员工类型

我想知道这是否是从上述问题中检索信息的最佳方式

SELECT e.EmployeeName , e.EmployeeAddress
FROM Employee e JOIN EmployeeType et ON e.EmployeeType = et.EmployeeType
HAVING e.EmployeeCode = (1) AND et.TotalPay = (40);

我不会在这个查询中使用HAVING,我更喜欢WHERE条件或在join上添加更多参数。你可以读到关于这个的 Having与WHERE条件略有不同,因为它是在查询结果之后应用的

具有简单WHERE条件的第一解

SELECT e.EmployeeName , e.EmployeeAddress
FROM Employee e 
INNER JOIN EmployeeType et ON e.EmployeeType = et.EmployeeType
WHERE e.EmployeeCode = '1' AND et.TotalPay = '40';
第二个解决方案在连接时添加更多参数

SELECT e.EmployeeName , e.EmployeeAddress
FROM Employee e 
INNER JOIN EmployeeType et ON (e.EmployeeType = et.EmployeeType AND et.TotalPay = '40')
WHERE e.EmployeeCode = '1' ;

它没有,它的HAVINGOpps拼写错误,它看起来可以与(编辑的)形式分开吗?
有…
是错误的:只在
分组后使用
。相反,把
放在…
,就像@Zeljka的答案一样。有很多方法可以编写这个查询;它们可能同样有效(如果您的SQL引擎是智能的)。询问“最佳解决方案”需要一个价值判断:“最佳”的标准是什么?第一个解决方案的
JOIN
位于
相同命名的列上。因此您可以使用
自然连接
。但如果两个表之间存在其他同名列,则可能会出现错误@Liam的q应该说明表的完整模式。