Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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
从数据库中的多个未链接表获取结果的SQL查询_Sql - Fatal编程技术网

从数据库中的多个未链接表获取结果的SQL查询

从数据库中的多个未链接表获取结果的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兰

数据库中有两个表,如下所示(请注意,这两个表没有任何共同的键):

员工表

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兰迪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
(选择器)关系运算符组合实现的。我同意。但是为了澄清这个数据库不在我的控制之下。我只允许阅读数据,我同意。但是为了澄清这个数据库不在我的控制之下。我只允许读取数据。