俩个表
A表 A1,A2
B表 B1,B2A表是个地名表和编号例如A1   A2
1   中国
2   美国
3   英国B表是一个信息表,其中字段B1标明可能和A表有关系,例如B1       B2
1    中国的东西
2    美国的东西
非洲 非洲的东西问题是如果俩表联合查询,查询B1字段是否存在于A表中,如果存在列出A2,如果不存在,直接列出B字段最后联合查询的结果希望是这样
中国   中国的东西
美国   美国的东西
非洲   非洲的东西怎么写呢?通用点的语句,sqlite使用怎么写好点?通用点的语句,sqlite使用

解决方案 »

  1.   

    语法不同,去相应版问询B1字段是否存在于A表中,如果存在列出A2,如果不存在,直接列出B字段 SELECT A.A2,B.B2 FROM A,B WHERE A.A1=B.B1
    UNION ALL
    SELECT * FROM B WHERE NOT EXISTS(SELECT 1 FROM A WHERE B.A1=A.A1)
      

  2.   

    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)
      

  3.   

    select
      a.a2,b.a2
    from
      a,b
    where
      a.a1=b.a1
      

  4.   

    ---还要列出不同的 修改下
    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
      

  5.   

    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)
      

  6.   

    一楼错了个点,不好意思.
    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 行)
    */
      

  7.   


    select isnull(t.[A2],r.[B1]),r.[B2] from [tb2] r left join 
    [tb1] t on t.[A1]=r.[B1]
      

  8.   

    --> 测试数据:[tb1]
    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]
    --------------------
    中国 中国的东西
    美国 美国的东西
    非洲 非洲的东西
      

  9.   


    select b1=isnull(a2,b1),b2 from b left join a
    on a.a1=b.b1
      

  10.   

    select isnull(A表.A1, B表.B1) as B1 , B2 from B表 left outer join A表 on B表.B1 = A表.A1
      

  11.   

    select b.b1,b.b2 from a inner join b on a.a1=b.b1
    union
    select b1,b2 from b where b1 not in(select a1 from a)
      

  12.   

    --> 测试数据: [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