两张表。显示没有的内容
如:
a表
id   name    发放日期         发放数量
1    鞋       2003-10-1       1b表
id  name      发放数量   
1   鞋          1 
2   裤子        2想要的效果是鞋       2003-10-1       1
裤子     2008-10-1       2
b表中的那个鞋子不显示,只显示a表中的内容和a表中没有但b表中有的内容。
鞋子在a表中有.就可以不显示!

解决方案 »

  1.   

    select id,name,num from a 
    union 
    select id,name,num from b 
      

  2.   

    --测试数据
    create table a(id number,name varchar2(100),cdate date,num number);
    create table b(id number,name varchar2(100),num number);insert into a select 1,'鞋子',sysdate,1 from dual;
    insert into b select 1,'鞋子',1 from dual union all select 2,'裤子',2 from dual;
    --执行查询
    select id,name,num from a 
    union 
    select id,name,num from b
    --查询结果
    1 鞋子 1
    2 裤子 2
      

  3.   


    SELECT * FORM a,b 
    WHERE a.name =b.name(+) 在Oracle PL-SQL中,左连接和右连接以如下方式来实现 查看如下语句:
    SELECT emp_name, dept_name 
    FORM Employee, Department
    WHERE Employee.emp_deptid(+) = Department.deptid此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现。反之:
    SELECT emp_name, dept_name 
    FORM Employee, Department
    WHERE Employee.emp_deptid = Department.deptid(+)则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都会被显示
      

  4.   

    try it ..
    SQL> select distinct
      2         tt.name,
      3         tt.amount,
      4         nvl(max(tt.publishdate) over(partition by tt.name,tt.amount),sysdate) as publishdate
      5    from (
      6          select aname as name,
      7                 publishdate,
      8                 amount
      9            from a
     10          union
     11          select bname as name,
     12                 null as publishdate,
     13                 amount
     14            from b
     15         )tt;NAME     AMOUNT PUBLISHDATE
    ---- ---------- -----------
    裤子          2 1/3/2008 
    鞋            1 1/1/2003
      

  5.   

    select id,name,日期 as 显示日期,num from a 
    union 
    select id,name,'' as 显示日期,num from b 
    上下名称一致就可以了