我尝试从两个表中进行选择,并将一些数据从一个表中添加到另一个表中 (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中获取公司名称的所有数据,如果它的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
但是这只给我不是空值:
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 or COMPANY_SHORT_NR is null
我得到记录......
如果我只使用IS NULL
,那么它只返回2行。
我犯错误的地方?
答案 0 :(得分:4)
您必须使用left join
,如下所示
select ID
,NAME
,COLOR
,COMPANY_SHORT_NR
from table1 t1
left join table2 T2 on t1.COMPANY_SHORT_NR = t2.SHORT
答案 1 :(得分:1)
select ID
,NAME
,COLOR
,COMPANY_SHORT_NR
from table1
LEFT OUTER JOIN table2 ON ( COMPANY_SHORT_NR = SHORT )
答案 2 :(得分:0)
加入桌子不是更好吗?比如SELECT ID, NAME, COLOR, COMPANY_SHORT_NR FROM table1 t1 LEFT JOIN table2 t2 on t2.SHORT = t1.COMPANY_SHORT_NR WHERE 1