如果特定x值与同一表中任何行中的y值匹配,我想删除一行。
前:
| x | y |
| 4 | 2 |
| 2 | 6 |
| 8 | 1 |
| 3 | 1 |
| 7 | 8 |
| 9 | 5 |
会变成:
| x | y |
| 4 | 2 |
| 3 | 1 |
| 7 | 8 |
| 9 | 5 |
答案 0 :(得分:2)
使用EXISTS
Delete from
yourtable where exists (select 1 from tab b where b.y =yourtable.x)
答案 1 :(得分:1)
如果您的数据库允许,可以使用自联接:
DELETE FROM foo AS xside
LEFT JOIN foo AS yside ON xside.y = yside.x
答案 2 :(得分:1)
Delete from tab where x in ( select y from tab)
替代版本以计算y
列中的空值。
Delete from tab t where exists ( select 1 from tab ta where ta.y = t.x)