Re: Please advice on a query
От | David G. Johnston |
---|---|
Тема | Re: Please advice on a query |
Дата | |
Msg-id | CAKFQuwb=1r9DCzr-sPxG=JBtXRUnEFz-TLvK41KEej_9RK576g@mail.gmail.com обсуждение исходный текст |
Ответ на | Please advice on a query (JORGE MALDONADO <jorgemal1960@gmail.com>) |
Список | pgsql-novice |
I have a table more or less like this:----------------------------------------------------- crs_id some data req----------------------------------------------------- 25 aaaaaaaa 2125 aaaaaaaa 1917 ccccccccc null8 dddddddd null19 eeeeeeee 1519 xxxxxxxxx 3715 fffffffffffffffff 1010 gggggggg nullI need to delete rows according to the following criteria:* Row with "crs_id = 25" must be deleted (only the second row) because "req = 19" and there is a row with "crs_id = 19"* Row with "crs_id = 19" must be deleted (only the first row) because "req = 15" and there is a row with "crs_id = 15"* Row with "crs_id = 15" must be deleted because "req = 10" and there is a row with "crs_id = 10"I have been struggling with this issue without a successful result.
Maybe...
DELETE FROM tbl
WHERE EXISTS (SELECT 1 FROM tbl AS cmp WHERE tbl.req_id = cmp.crs_id)
That probably can be written with USING though I find that syntax a bit hard to read personally. Might want to compare plans if performance matters.
David J.
В списке pgsql-novice по дате отправления: