SQL语句加入

时间:2015-12-09 18:44:33

标签: sql oracle inner-join

我有一个像下面一列的表(有一个null和一个对象的链接,点击它时会获取该对象的详细信息,如Name,EmailAddress ....)

ID   COUNTRY 
1     null 
2     null 
3     null 
4     2zlad9.6f 

我需要在同一个表上编写一个连接查询来获取" object.Name"取代"对象"列的值和空值应保持不变。

当在同一个表上使用JOIN时,它只给出具有对象的列,其中忽略具有null的列。

我需要列的所有值,如下所示

ID   COUNTRY 
1     null 
2     null 
3     null 
4     US

我使用了像

这样的查询
Select p.ID, p.Country.Name 
from table1 p
JOIN table1 p2 ON p.ID=p2.ID

只是给了我

ID  Country
4    US

1 个答案:

答案 0 :(得分:1)

Null代表什么都没有。对于缺乏价值而言,它不是一个价值,也不是一个地标。如果您要加入包含NULL值的列,则表示没有任何内容可以从您的某个数据集返回,您应该看不到任何值。

如果您希望查看整个集合以及第二组中的缺失值,请查看Outer Joins,例如:

Select t1.id, t1.value
From table1 t1
Left Join table2 t2 on t1.id = t2.id

---编辑-----

了解您在加入时所询问的内容非常重要。当你说选择从Table1加入Table2 ....你说的是我在table1中有一系列值,我想从Table2中拉回所有匹配。

确保您熟悉IntersectionDifferenceUnion的集合论概念。此外,here是连接概念的可视图表。标记为红色的所有内容都是指您要撤回的数据。