执行两个表时没有记录

时间:2017-01-16 11:51:25

标签: sql sql-server-2012

为什么没有获得跨产品类型记录?

如果表格 test2 包含 testName 的记录。 和表 test1 没有任何记录。

 select *from test2
 column name  : name
 column value : testName

 select *from test1
 column name  : id
 column value : 

select *From test1,test2 
id     name 

*no any records 

我想要这样的记录。

id     name 
null   testName

3 个答案:

答案 0 :(得分:1)

使用完全加入条件并始终评估为true,可以获得所需的结果:

创建并填充样本表(在将来的问题中保存此步骤)

create table test1
(
    id int
)

create table test2
(
    name varchar(10)
)  

insert into test2 values ('testName')

查询:

select *
from test1
full join test2 on 1=1

结果:

id  name
NULL    testName

答案 1 :(得分:0)

如果您想要获取另一个表中可能存在或可能不存在的记录,则可以使用LEFT JOIN

 select * 
 From test2 b
 left join test1 a ON a.value = b.value

答案 2 :(得分:0)

尝试以下:

SELECT t1.id, t2.name 
FROM test2 AS t2 LEFT JOIN 
    test1 AS t1 ON 1=1
WHERE t2.name LIKE 'testName'
    AND NOT EXISTS (SELECT 1 FROM test1)

如果这不起作用,请告诉我。