在连接具有特定条件的两个表时,我需要帮助。我想将Table_1与最近的Table_A.Col_A <= Table.Col_B
上的Table_2连接起来所以我有两个桌子
Table_1
Col_A
1
2
6
Table_2
Col_A | Col_B
1 | p1
4 | p2
5 | p3
Result Table
Col_A | Col_B
1 | p1
2 | p1
6 | p3
答案 0 :(得分:1)
一个相关的子查询处理此问题:
select t1.col_a,
(select t2.col_b
from table2 t2
where t2.col_A <= t1.col_A
order by t2.col_A desc
limit 1
)
from table1 t1;
答案 1 :(得分:0)
我会尝试做这样的事情。
SELECT DISTINCT t1.col1, t2.col2
FROM Table_1 t1 JOIN Table_2 t2 on t1.col1 <= t2.col1
WHERE --something matches
但是,关于此帖子的信息并不多,您可以提供的更多详细信息将使我们能够为您提供更好的帮助。
答案 2 :(得分:0)
您可以将条件放在ON子句中,如下所示:
select
t1.Col_A, t2.Col_B
from Table_1 t1 left join Table_2 t2
on t2.Col_A = (select max(Col_A) from Table_2 where Col_A <= t1.Col_A)
请参见demo。
结果:
| Col_A | Col_B |
| ----- | ----- |
| 1 | p1 |
| 2 | p1 |
| 6 | p3 |