Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 根据不带联接的第二个表从一个表中选择_Sql - Fatal编程技术网

Sql 根据不带联接的第二个表从一个表中选择

Sql 根据不带联接的第二个表从一个表中选择,sql,Sql,我有两个表,我可以完全分开查询 表1存储范围: SELECT range_id, range_from, range_to FROM table1; 表2存储ID: SELECT MAX(id) FROM table2 WHERE id BETWEEN <x> AND <y>; 我不知道如何做到这一点,因为这里没有什么可以加入的 有什么想法吗?试试这个 select * , ( select max(t2.id) fro

我有两个表,我可以完全分开查询

表1
存储范围:

SELECT range_id, range_from, range_to FROM table1;
表2
存储ID:

SELECT MAX(id) FROM table2 WHERE id BETWEEN <x> AND <y>;
我不知道如何做到这一点,因为这里没有什么可以加入的

有什么想法吗?

试试这个

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
   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>
选择t1.range\u id,t2.MAX(id)
来自表1 t1
内连接表2 t2
在t1.range_ID=t2.ID上
其中t2.id介于和之间
试试这个

   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>
选择t1.range\u id,t2.MAX(id)
来自表1 t1
内连接表2 t2
在t1.range_ID=t2.ID上
其中t2.id介于和之间

问题:“我看不出如何做到这一点,因为这里没有什么可以加入的。”我不认为
表1
中的
范围id
表2
中的
id
有任何关系。问题是:“我看不到如何做到这一点,因为这里没有什么可以加入的。”我认为
table1
中的
range\u id
table2
中的
id
没有任何关联。+1,我不知道这样的东西会起作用。不幸的是,我的SQL server也没有。对于第二个SELECT,它报告“语法错误或保留字”。(它是HP NonStop大型机上的SQLCI服务器)。还有另一种方法吗?针对SQLCI解决了这个问题:诀窍是用“JOIN ON 1=1”模拟一个完整的外部连接,然后按range\u from和range\u to分组,选择MAX(id)。因为我比我自己更喜欢你的解决方案(尽管你的解决方案在该死的SQL/CI上不起作用),我会接受你的答案。+1,不知道这样的解决方案会起作用。不幸的是,我的SQL server也没有。对于第二个SELECT,它报告“语法错误或保留字”。(它是HP NonStop大型机上的SQLCI服务器)。还有另一种方法吗?针对SQLCI解决了这个问题:诀窍是用“JOIN ON 1=1”模拟一个完整的外部连接,然后按range\u from和range\u to分组,选择MAX(id)。因为我比我自己更喜欢你的解决方案(尽管你的解决方案在该死的SQL/CI上不起作用),所以我会接受你的答案。