俩个表
A表 A1,A2
B表 B1,B2A表是个地名表和编号例如A1 A2
1 中国
2 美国
3 英国B表是一个信息表,其中字段B1标明可能和A表有关系,例如B1 B2
1 中国的东西
2 美国的东西
非洲 非洲的东西问题是如果俩表联合查询,查询B1字段是否存在于A表中,如果存在列出A2,如果不存在,直接列出B字段最后联合查询的结果希望是这样
中国 中国的东西
美国 美国的东西
非洲 非洲的东西怎么写呢?通用点的语句,sqlite使用怎么写好点?通用点的语句,sqlite使用
A表 A1,A2
B表 B1,B2A表是个地名表和编号例如A1 A2
1 中国
2 美国
3 英国B表是一个信息表,其中字段B1标明可能和A表有关系,例如B1 B2
1 中国的东西
2 美国的东西
非洲 非洲的东西问题是如果俩表联合查询,查询B1字段是否存在于A表中,如果存在列出A2,如果不存在,直接列出B字段最后联合查询的结果希望是这样
中国 中国的东西
美国 美国的东西
非洲 非洲的东西怎么写呢?通用点的语句,sqlite使用怎么写好点?通用点的语句,sqlite使用
UNION ALL
SELECT * FROM B WHERE NOT EXISTS(SELECT 1 FROM A WHERE B.A1=A.A1)
union all
select b.a1 , b.b2 from b where b1 not in (select a1 from a)
a.a2,b.a2
from
a,b
where
a.a1=b.a1
select a.a2 , b.b2 from a , b where a.a1 = b.b1
union all
select b.a1 , b.b2 from b where b1 not in (select a1 from a
union all
select b.a1 , b.b2 from b where b1 not in (select a1 from a)
create table A(A1 varchar(10),A2 varchar(10))
create table B(B1 varchar(10),B2 varchar(10))
insert into A values('1' , '中国')
insert into A values('2' , '美国')
insert into A values('3' , '英国')
insert into B values('1' , '中国的东西')
insert into B values('2' , '美国的东西')
insert into B values('非洲', '非洲的东西')
goselect a.a2 , b.b2 from a , b where a.a1 = b.b1
union all
select b.b1 , b.b2 from b where b1 not in (select a1 from a)drop table a , b /*
a2 b2
---------- ----------
中国 中国的东西
美国 美国的东西
非洲 非洲的东西(所影响的行数为 3 行)
*/
select isnull(t.[A2],r.[B1]),r.[B2] from [tb2] r left join
[tb1] t on t.[A1]=r.[B1]
if object_id('[tb1]') is not null drop table [tb1]
create table [tb1]([A1] varchar(4),[A2] varchar(4))
insert [tb1]
select 1,'中国' union all
select 2,'美国' union all
select 3,'英国'
--> 测试数据:[tb2]
if object_id('[tb2]') is not null drop table [tb2]
create table [tb2]([B1] varchar(4),[B2] varchar(10))
insert [tb2]
select '1','中国的东西' union all
select '2','美国的东西' union all
select '非洲','非洲的东西'select isnull(t.[A2],r.[B1]) as [B1],r.[B2] from [tb2] r left join
[tb1] t on t.[A1]=r.[B1]
--------------------
中国 中国的东西
美国 美国的东西
非洲 非洲的东西
select b1=isnull(a2,b1),b2 from b left join a
on a.a1=b.b1
union
select b1,b2 from b where b1 not in(select a1 from a)
if object_id('[a]') is not null drop table [a]
create table [a] (A1 int,A2 varchar(4))
insert into [a]
select 1,'中国' union all
select 2,'美国' union all
select 3,'英国'
--> 测试数据: [b]
if object_id('[b]') is not null drop table [b]
create table [b] (B1 varchar(4),B2 varchar(10))
insert into [b]
select '1','中国的东西' union all
select '2','美国的东西' union all
select '非洲','非洲的东西'select b1=isnull(a2,b1),b2 from b left join a
on ltrim(a.a1)=b.b1