从数据库中的多个未链接表获取结果的SQL查询
数据库中有两个表,如下所示(请注意,这两个表没有任何共同的键): 员工表 EidEname工资 001约翰15000 002 Mac 20000 003迈克尔6000 004兰迪30000 005曼迪零从数据库中的多个未链接表获取结果的SQL查询,sql,Sql,数据库中有两个表,如下所示(请注意,这两个表没有任何共同的键): 员工表 EidEname工资 001约翰15000 002 Mac 20000 003迈克尔6000 004兰迪30000 005曼迪零 工资表 MinSalMaxSal等级 1000万A 11000 20000 B 21000 30000摄氏度 31000 40000天 现在所需的输出类似于 员工详细信息 EidEname工资等级 001约翰15000 B 002 Mac 20000 B 003迈克尔6000 A 004兰
工资表 MinSalMaxSal等级 1000万A 11000 20000 B 21000 30000摄氏度 31000 40000天
现在所需的输出类似于 员工详细信息 EidEname工资等级 001约翰15000 B 002 Mac 20000 B 003迈克尔6000 A 004兰迪30000 C 005曼迪不适用不适用 用于获取req的逻辑或技术是什么。结果。此操作的SQL代码是什么。您需要使用JOIN 这里有一个关于如何使用它的有用页面:您需要使用JOIN
这里有一个关于如何使用它的有用页面:在您的案例中,您需要一个非相等连接:
select e.eid, e.ename, e.salary, s.grade
from employee e inner join salary s on (e.salary between s.minsal and s.maxsal)
您可能需要为您的
N/a
案例添加一个特殊案例。可能是一个左外
连接?如果您指定正在使用的RDBMS,可能会有所帮助。在您的案例中,您需要非等联接:
select e.eid, e.ename, e.salary, s.grade
from employee e inner join salary s on (e.salary between s.minsal and s.maxsal)
您可能需要为您的
N/a
案例添加一个特殊案例。可能是一个左外
连接?如果您指定正在使用的RDBMS,这可能会有所帮助。我郑重建议将它们链接起来,这将产生更好的体系结构并使编码更容易
但是,如果您不想这样做,您可以使用if语句获得所需的结果,每个薪资等级对应一个。我郑重建议将它们链接起来,这将产生更好的体系结构并使编码更容易
但是,如果您不想这样做,您可以使用if语句获得所需的结果,每个薪酬等级一个。
John
应该获得B
,而不是A
,对吗?John
应该获得B
,而不是A
,对吗。它应该是一个左外连接
来覆盖最后一个案例(Mandy
),谢谢。您建议的查询有效。但是我仍然想知道理论或逻辑(口头或数学)以及能够帮助人们获得正确查询的思维方式?@Rise:如果你想了解更多关系数据库和SQL背后的理论,你需要学习关系代数。您试图解析的查询是通过X
(叉积)关系运算符与s
(选择器)关系运算符组合实现的。对。它应该是一个左外连接
来覆盖最后一个案例(Mandy
),谢谢。您建议的查询有效。但是我仍然想知道理论或逻辑(口头或数学)以及能够帮助人们获得正确查询的思维方式?@Rise:如果你想了解更多关系数据库和SQL背后的理论,你需要学习关系代数。您试图解决的查询是通过X
(叉积)关系运算符与s
(选择器)关系运算符组合实现的。我同意。但是为了澄清这个数据库不在我的控制之下。我只允许阅读数据,我同意。但是为了澄清这个数据库不在我的控制之下。我只允许读取数据。