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

标签 sql

我有两个表,我可以完美地分别查询。

table1 存储范围:

SELECT range_id, range_from, range_to FROM table1;

table2 存储 ID:

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


我需要一个查询,对于 table1 中的每个元组(range_idfromto)选择 table2 中的 MAX(id),使得 MAX(id) 位于 from 和 to 之间:

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

我不知道如何实现这一点,因为这里没有什么可以加入的。

有什么想法吗?

最佳答案

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

关于sql - 根据没有 JOIN 的第二个表从一个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14235930/

相关文章:

java - 将 clojure vec 传递给 POSTGRES IN 语句(?)

java - 检查更新查询是否影响行

php - 从数据库接收变量的最佳方式

sql - 在这个例子中,WITH 语句做了什么?我正在尝试随机生成数据

sql - FOR JSON 路径在 AZURE SQL 上返回较少的行数

php - 检查用户是否投票

php - 将数组插入mysql db函数

sql - 索引 bool 字段

c# - 匹配大型文本数据集——如何更快地匹配?

c# - 使用 linq 从动态 sql 查询中检索和打印数据