试一试
select B.id from B, A
    where A.income between B.begin and B.end;

解决方案 »

  1.   

    B表:
    begin   end       id
    1        10        1
    11        20       2
    21       30        3
    30         100     9
    A表:
    income
    8
    25
    13
    50
    这是两个表的数据,现在我要根据A表的数据从A表得到id ,现在清楚吗?
      

  2.   

    不太清楚这是你想要的结果吗?select id from b
    where begin > (select min(income) from a)
      and end   < (select max(income) from a)
      

  3.   

    两个表的内容至少有一个字段名及内容相同或关联,才能用SQL语句查询。
      

  4.   

    建议你在A表中建立字段ID,数据与B表同,就OK!
      

  5.   

    这不是我要的结果, cyberflying(雁南飞)你的sql不符合我的要求
      

  6.   

    lzf163com(门也没有) 那有象你搞不定就改表结构的,不行我要的是id,根据income在哪个区间得到对应的id
      

  7.   

    呵呵!小弟刚学oracle,也来试试,不知下面的结果是否符合楼主的要求?:)
    SQL> select * from b;     BEGIN        END         ID
    ---------- ---------- ----------
            11         20          2
             1         10          1
            21         30          3SQL> select * from a;    INCOME
    ----------
             8
            25
            13
    SQL> select id from b,a where a.income between b.begin and b.end;        ID
    ----------
             1
             3
             2
      

  8.   

    阿感觉泥的问题好像提错了!泥要求的到底是一个什么样的ID集??不过,泥这样提出的问题也是有解的:
    SELECT ID FROM B
    MINUS
    SELECT ID FROM B WHERE B.begin < select min(income) from a
    MINUS
    SELECT ID FROM B WHERE B.end > select max(income) from a