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上不起作用),所以我会接受你的答案。