现有两个表
表一
lxid   name
01     红文具盒
02     铅笔
表二
id    lxid  upid
 1     01
 2     02   01
 3     02   01
这两个表的意思是
在文具盒中放了2只铅笔,
现在能通过给定某只铅笔的id号,查出它属于的文具盒
比如
id   lxid    name
2     02     红文具盒

解决方案 »

  1.   

    select id,a.lxid,b.name from table2 a left join table1 b on a.lxid=b.lxid;
      

  2.   

    我有点不明白 id为3的数据呢? 
    id  lxid    name 
    2    02    红文具盒 
    3    02    红文具盒 
      

  3.   


    select id,a.lxid,b.name from table2 a left join table1 b on a.lxid=b.lxid;select a.id,a.lxid,b.name
    from table1 b,table2 a
    where a.lxid = b.lxid
      

  4.   

    那就要创建一个存储过程了,将id=2传递给一个变量,然后根据条件查询你要的结果。(假如id是varchar2(3))
    create or replace procedure id_name (p_id in vrchar2)
    as
     v_id varchar2(3);
     v_lxid varchar2(4);
     v_upid varchar2(10);
    begin
     select id into v_id,a.lxid into v_lxid ,b.name into v_upid from table2 a,table1 b 
      where id = p_id
            a.lxid=b.lxid;
    dbms_output.put_line(v_id || '  '||v_lxid ||'  '||v_upid);
    end;
      

  5.   

    存储过程,出来啦,
    楼上的有些没写到,测试了一下,下面是改楼上大哥的,版权归楼上大哥所有。小的学习啦create or replace procedure P_name (p_id in tempuser.aa02.id%type)
    as
    v_id varchar2(4);
    v_lxid varchar2(4);
    v_upid varchar2(20);
    begin
    select a.id,a.lxid,b.lxname into v_id, v_lxid, v_upid from aa02 a,aa01 b
      where a.id = p_id
      and   a.lxid=b.lxid;
            
    dbms_output.put_line(v_id || '  '||v_lxid ||'  '||v_upid);
    end;
      

  6.   

    现有两个表
    表一  table_1
    lxid  name
    01    红文具盒
    02    铅笔
    表二 table_2
    id    lxid  upid
    1    01
    2    02  01
    3    02  01
    这两个表的意思是
    在文具盒中放了2只铅笔,
    现在能通过给定某只铅笔的id号,查出它属于的文具盒
    比如
    id  lxid    name
    2    02    红文具盒 select t3.* from 
    (select t2.*,t1.name from table_1 t1,table_2 t2 
     where t1.lxid=t2.lxid) t3 where t3.id='2'
      

  7.   

    select t3.* from 
    (select t2.lxid from table_2 t2 where t2.id='2') t3,table_1 t1,table_2 t2
     where  where t1.lxid=t2.lxid;
     也可以是这样的代码哦。试一试