我有兩個表:
SQL從A中刪除(如果存在)在乙
USER
MAILING
MAILING
表具有一列email
。
USER
表有許多users
與email
。
現在我想刪除這樣的事情:
DELETE email FROM mailing WHERE users.email = mailings.email
所以我需要的,如果這個電子郵件中的用戶表中存在從表郵寄刪除電子郵件。
我有兩個表:
SQL從A中刪除(如果存在)在乙
USER
MAILING
MAILING
表具有一列email
。
USER
表有許多users
與email
。
現在我想刪除這樣的事情:
DELETE email FROM mailing WHERE users.email = mailings.email
所以我需要的,如果這個電子郵件中的用戶表中存在從表郵寄刪除電子郵件。
您可以使用此
DELETE FROM mailing WHERE email IN (SELECT email FROM users)
或使用JOIN
DELETE M
FROM mailing M
JOIN users U
ON M.email = U.email
很好...簡單而且工作:)謝謝 – Wordica
@Michael確保在兩張表中索引電子郵件... –
嘗試update
如果要更新列
UPDATE mailing
inner join users on users.email = mailings.email
set email=null
不delete
,或者你想刪除的記錄 試試這個:
DELETE m
FROM mailing m
inner join users u on u.email=m.email
考慮到您要刪除郵件表中的所有行,並且郵件表中只有一列。
Delete
from mailing where mailing.email
exists (select email from users where users.email = mailing.email);
您可以使用MySQL的EXISTS
條款如下 -
delete from mailing where exists(select * from user where user.email=mailing.email);
你要刪除的行或設置電子郵件= NULL? – giammin
可能的重複[SQL DELETE與JOIN另一個表的WHERE條件](http://stackoverflow.com/questions/1980738/sql-delete-with-join-another-table-for-where-condition) –
我想刪除它。郵寄表不應該有電子郵件存在用戶 – Wordica