0

私は2つのテーブルを持っています:

  • USER
  • MAILING

MAILINGテーブルには 1 つの列がありますemail

USERテーブルには がたくさんusersありemailます。

今、私はこのようなものを削除したい:

DELETE email FROM mailing WHERE users.email = mailings.email 

したがって、この電子メールがユーザーテーブルに存在する場合、テーブルメーリングから電子メールを削除する必要があります。

4

4 に答える 4

2

これを使用できます

DELETE FROM mailing WHERE email IN (SELECT email FROM users)

またはこれを使用してJOIN

DELETE M
FROM mailing M
  JOIN users U
    ON M.email = U.email 
于 2013-10-17T13:01:15.960 に答える
0

列を更新したい場合はしupdateないでくださいdelete

UPDATE mailing 
inner join users on users.email = mailings.email  
set email=null 

または、レコードを削除したい場合は、次のようにしてください:

DELETE m 
FROM mailing m 
inner join users u on u.email=m.email
于 2013-10-17T13:01:04.503 に答える
0

EXISTS次のようにMySQLの句を使用できます-

delete from mailing where exists(select * from user where user.email=mailing.email);

JOINを使用する必要はありません

于 2013-10-17T13:47:48.163 に答える
0

メーリング テーブルからすべての行を削除したいと考えており、メーリング テーブルには 1 つの列しかありません。

Delete
from mailing where mailing.email 
exists (select email from users where users.email = mailing.email);
于 2013-10-17T13:02:21.170 に答える