在特定条件下联接两个表

时间:2019-05-17 19:11:33

标签: mysql sql

在连接具有特定条件的两个表时,我需要帮助。我想将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

3 个答案:

答案 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    |