根据没有JOIN的第二个表从一个表中选择

时间:2013-01-09 13:09:00

标签: sql

我有两张桌子,我可以完全单独查询。

table1存储范围:

SELECT range_id, range_from, range_to FROM table1;

table2存储ID:

SELECT MAX(id) FROM table2 WHERE id BETWEEN <x> AND <y>;


我需要一个查询,来自range_id的每个元组(fromtotable1)从MAX(id)中选择table2,以便MAX(id) 1}}介于from和to之间:

range_id    max(id)
--------    -------
foo         3
bar         17
snafu       823467

我不知道怎么做到这一点,因为这里没有什么可以加入。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

select  *
,       (
        select  max(t2.id)
        from    table2 t2
        where   t2.id between t1.range_from and t1.range_to
        ) as max_id_in_range
from    table1 t1

答案 1 :(得分:0)

试试这个

   SELECT t1.range_id ,t2.MAX(id)
   FROM  table1 t1
   INNER JOIN table2 t2
   ON  t1.range_ID = t2.ID
    WHERE t2.id BETWEEN <x> AND <y>