我试图从表中删除未使用的行.这是我的问题的简化示例:
有2个表:
user table:
user_id user_name
--------------------
1 Mike
3 Carol
8 Eric
address table:
user_id address
-----------------------
1 mike@abc.com
3 carol@yyy.com
10 bob@example.com
3 carol@example.com
Run Code Online (Sandbox Code Playgroud)
我想从地址表中删除未使用的地址.如果用户表中存在地址的user_id,则该地址未使用.示例表中有一个未使用的地址:bob@example.com.
我是SQL新手,我的解决方案很难看:
DELETE FROM address
WHERE NOT EXISTS
( SELECT * FROM user WHERE address.user_id = user.user_id );
Run Code Online (Sandbox Code Playgroud)
必须有更好的方法来做到这一点.最好的方法是什么?
使用sqlite.
像这样做:
DELETE FROM address
WHERE user_id NOT IN (SELECT user_id FROM user);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2060 次 |
| 最近记录: |