Как удалить потерянные строки в Table A
* обозначает потерянные строки :
+---------+--------+----------+-------+
| ID | option | category | rates | Table A
+---------+--------+----------+-------+
| a | f | null | 2.5 |
+---------+--------+----------+-------+
| a | f | d | 2 |*
+---------+--------+----------+-------+
| a | g | e | 3 |
+---------+--------+----------+-------+
| c | g | e | 4 |
+---------+--------+----------+-------+
| d | f | d | 1 |
+---------+--------+----------+-------+
Только для идентификаторов, существующих в Table B
(только для идентификаторов проверки a
& c
, оставьте d
в покое):
+---------+--------+----------+-------+
| ID | option | category | rates | Table B
+---------+--------+----------+-------+
| a | f | null | 2.5 |
+---------+--------+----------+-------+
| a | g | e | 3 |
+---------+--------+----------+-------+
| c | g | e | 4 |
+---------+--------+----------+-------+
Результат (была удалена только вторая строка a,f,d,2
):
+---------+--------+----------+-------+
| ID | option | category | rates | Table A
+---------+--------+----------+-------+
| a | f | null | 2.5 |
+---------+--------+----------+-------+
| a | g | e | 3 |
+---------+--------+----------+-------+
| c | g | e | 4 |
+---------+--------+----------+-------+
| d | f | d | 1 |
+---------+--------+----------+-------+
Это только пример, реальные таблицы содержатмного других идентификаторов и вариаций.
Я думаю, что я должен group by ID
на Table B
для временной таблицы, а затем loop
удалить на несоответствующих строках на Table A
для идентификатора.
Поскольку я новичок в PostgreSQL, можете ли вы показать мне, как это можно сделать?Я искал удаления из цикла, но не уверен, как передать идентификатор из временной таблицы в цикл.Кроме того, если есть лучший способ, пожалуйста, дайте мне знать.Заранее спасибо!