请考虑以下场景:
我有一个如下所示的表格:
我希望能够从表中选择记录,并以这样的方式进行,如果标签=i,则从结果集中删除下一行。
这是因为具有id=90且标签为d、客户端为Z的行已经出现过。 但是这一行。
我有一个如下所示的表格:
Tag | Id | Client | ....and more columns
c 30 X
c 40 Y
c 50 X
c 60 A
c 30 B
c 40 C
d 50 D
d 70 E
d 80 X
d 90 Z
i 30 X
i 90 Z
i 100 X
i 40 M
我希望能够从表中选择记录,并以这样的方式进行,如果标签=i,则从结果集中删除下一行。
i 30 X
i 90 Z
这是因为具有id=90且标签为d、客户端为Z的行已经出现过。 但是这一行。
i 40 M
即使id=40已经与client=C出现过,也不能删除此行,因为client列的值不同。
DELETE FROM myTable
WHERE tag=i AND id IN( SELECT id FROM myTable t1
INNER JOIN myTable t2
ON t1.id=t2.id
WHERE tag=d or tag=c )
i 100 X
? - Tim Schmelteri 30 X
。 - Mudassir Hasan