SQL 语句连接

Posted

技术标签:

【中文标题】SQL 语句连接【英文标题】:SQL STATEMENT JOINS 【发布时间】:2016-03-15 04:28:13 【问题描述】:

我有一个表格,下面有一个列(它有一个空值和一个对象链接,单击它会获取该对象的详细信息,例如名称、电子邮件地址......)

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

我需要在同一张表上编写一个连接查询来获取“object.Name”来代替列的“object”值,并且空值应该保持不变。

当在同一个表上与 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】:

Null 代表什么。可以说,它不是一个价值,而是一个缺乏价值的地标。如果您要加入包含 NULL 值的列,则这意味着您的数据集中没有任何内容可返回,您应该看不到任何值。

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

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

--- 编辑 -----

了解您在加入时所要求的内容很重要。当您说 Select From Table1 Join Table2 on .... 时,您的意思是我在 table1 中有一系列值,我想从 Table2 中撤回所有匹配项。

确保您熟悉 Intersection、Difference 和 Union 的集合论概念。 here 也是连接概念的可视化图表。标记为红色的所有内容均指您要拉回的数据。

【讨论】:

以上是关于SQL 语句连接的主要内容,如果未能解决你的问题,请参考以下文章

数据库操作,需要执行1000条SQL语句。

SQL语句中两个表的连接

sql语句里如何实现给查询记录添加自然序号?

连接两表查询结果的SQL语句

C#.Net与SQLSERVER连接语句?

用sql语句进行多表连接查询,怎么不查出重复数据