Обсуждение: Please advice on a query
I have a table more or less like this:
-----------------------------------------------------
crs_id some data req
-----------------------------------------------------
25 aaaaaaaa 21
25 aaaaaaaa 19
17 ccccccccc null
8 dddddddd null
19 eeeeeeee 15
19 xxxxxxxxx 37
15 fffffffffffffffff 10
10 gggggggg null
I 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.
Respectfully,
Jorge Maldonado
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.