Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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 在两个具有NULL和notnull的表上进行一次选择_Sql_Oracle_Select_Plsql_Isnull - Fatal编程技术网

Sql 在两个具有NULL和notnull的表上进行一次选择

Sql 在两个具有NULL和notnull的表上进行一次选择,sql,oracle,select,plsql,isnull,Sql,Oracle,Select,Plsql,Isnull,我尝试从两个表中进行选择,并使用USING WHERE将一些数据从一个表放到另一个表中 (PL/SQL) 我有两张这样的桌子: 表1 ID NAME COLOR COMPANY_SHORT_NR 1 a Green 1 2 b Red 23 3 c Blue null 4 a Green null 5 g Green 1 表2 ID SHORT COMP_NAME 1 1 company_name_

我尝试从两个表中进行选择,并使用USING WHERE将一些数据从一个表放到另一个表中 (PL/SQL)

我有两张这样的桌子:

表1

ID  NAME  COLOR  COMPANY_SHORT_NR
1   a     Green  1
2   b     Red    23
3   c     Blue   null
4   a     Green  null
5   g     Green  1
表2

ID  SHORT COMP_NAME
1   1     company_name_1 
2   23    comapny_name_2
现在我想从表1中获取所有公司名称的数据,如果它的get info为null,那么它就是null

1   a     Green  company_name_1 
2   b     Red    comapny_name_2 
3   c     Blue   null
4   a     Green  null
5   g     Green  company_name_1 
我试着这样做:

select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1
    ,table2
where COMPANY_SHORT_NR = SHORT 
select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1
    ,table2
where COMPANY_SHORT_NR = SHORT or COMPANY_SHORT_NR is null
但这只给了我非空值:

1   a     Green  company_name_1 
2   b     Red    comapny_name_2 
5   g     Green  company_name_1 
如果我使用这样的东西:

select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1
    ,table2
where COMPANY_SHORT_NR = SHORT 
select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1
    ,table2
where COMPANY_SHORT_NR = SHORT or COMPANY_SHORT_NR is null
我有上千张唱片。。。 如果我只使用
为空
,那么它只返回应该返回的2行


我哪里出错了

您必须使用
左连接
如下

select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1 t1
left join table2 T2 on t1.COMPANY_SHORT_NR = t2.SHORT 

您必须使用
左连接
,如下所示

select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1 t1
left join table2 T2 on t1.COMPANY_SHORT_NR = t2.SHORT 

你不必为那件事而去参加

select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1
     LEFT OUTER JOIN table2 ON ( COMPANY_SHORT_NR = SHORT )

你不必为那件事而去参加

select ID
      ,NAME
      ,COLOR
      ,COMPANY_SHORT_NR
from table1
     LEFT OUTER JOIN table2 ON ( COMPANY_SHORT_NR = SHORT )

加入桌子不是更好吗?像
从表1中选择ID、名称、颜色、公司名称\u SHORT\n从表1左侧连接表2 t2在t2上。SHORT=t1.COMPANY\u SHORT\n其中1

连接表不是更好吗?像
从表1 t1中选择ID、名称、颜色、公司名称\u SHORT\NR左键连接表2 t2。SHORT=t1.COMPANY\u SHORT\n其中1

我很高兴我能帮助你。我很高兴我能帮助你。