SQL - 没有主键的串联
SQL - Concatenation without primary key
我有两个不共享主键的表(A 和 B)。我需要某种连接,其中对于 Table A 中的每一行,如果 date_B < date_A[=25=,我必须添加 Table B 行].
*日期格式:yyyy-mm-dd
Table一个
+-------+-----+-----------+
| id_A | op_A| date_A |
+-------+-----+-----------+
| 1 | 0 | 2018-10-01|
| 2 | 0 | 2018-12-31|
+-------+-----+-----------+
Table B
+-----+--------+-------------+
| id_b| other | date_B |
+-----+--------+-------------+
| a | 8 | 2018-09-01 |
| b | 90 | 2018-12-01 |
+-----+--------+-------------+
正确结果:
+-----+-----+-----------+-----+--------+-------------+
| id_A| op_A| date_A | id_B| other | date_B |
+-----+-----+-----------+-----+--------+-------------+
| 1 | 0 | 2018-10-01| a | 8 | 2018-09-01 |
| 2 | 0 | 2018-12-31| a | 8 | 2018-09-01 |
| 2 | 0 | 2018-12-31| b | 90 | 2018-12-01 |
+-----+-----+-----------+-----+--------+-------------+
这个查询应该会给你你想要的结果:
SELECT *
FROM TableA a
JOIN TableB b ON b.date_B < a.date_A
输出:
id_A op_A date_A id_b other date_B
1 0 2018-10-01 a 8 2018-09-01
2 0 2018-12-31 a 8 2018-09-01
2 0 2018-12-31 b 90 2018-12-01
我有两个不共享主键的表(A 和 B)。我需要某种连接,其中对于 Table A 中的每一行,如果 date_B < date_A[=25=,我必须添加 Table B 行].
*日期格式:yyyy-mm-dd
Table一个
+-------+-----+-----------+
| id_A | op_A| date_A |
+-------+-----+-----------+
| 1 | 0 | 2018-10-01|
| 2 | 0 | 2018-12-31|
+-------+-----+-----------+
Table B
+-----+--------+-------------+
| id_b| other | date_B |
+-----+--------+-------------+
| a | 8 | 2018-09-01 |
| b | 90 | 2018-12-01 |
+-----+--------+-------------+
正确结果:
+-----+-----+-----------+-----+--------+-------------+
| id_A| op_A| date_A | id_B| other | date_B |
+-----+-----+-----------+-----+--------+-------------+
| 1 | 0 | 2018-10-01| a | 8 | 2018-09-01 |
| 2 | 0 | 2018-12-31| a | 8 | 2018-09-01 |
| 2 | 0 | 2018-12-31| b | 90 | 2018-12-01 |
+-----+-----+-----------+-----+--------+-------------+
这个查询应该会给你你想要的结果:
SELECT *
FROM TableA a
JOIN TableB b ON b.date_B < a.date_A
输出:
id_A op_A date_A id_b other date_B
1 0 2018-10-01 a 8 2018-09-01
2 0 2018-12-31 a 8 2018-09-01
2 0 2018-12-31 b 90 2018-12-01