SQL - объединение без первичного ключа - PullRequest
0 голосов
/ 11 января 2019

У меня есть две таблицы (A и B), которые не разделяют первичные ключи. Мне нужна какая-то конкатенация, в которой для каждой строки в таблице A мне нужно добавить строки таблицы B, если date_B .

* формат даты: гггг-мм-дд

Таблица A

+-------+-----+-----------+
| id_A  | op_A|   date_A  |
+-------+-----+-----------+
| 1     |  0  | 2018-10-01|
| 2     |  0  | 2018-12-31| 
+-------+-----+-----------+

Таблица 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  |  
+-----+-----+-----------+-----+--------+-------------+

1 Ответ

0 голосов
/ 11 января 2019

Этот запрос должен дать вам результаты, которые вы хотите:

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

Демонстрация по SQLFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...