6

使うことができます

select * from sent_txts s 
LEFT JOIN received_txts r ON s.msg_link_id = r.id 
WHERE r.action_id = 6;

上から一致する行を選択し、

両側で一致する行を削除するクエリを作成するにはどうすればよいですか?

何かのようなもの

delete sent_txts s 
LEFT JOIN received_txts r ON s.msg_link_id = r.id 
WHERE r.action_id = 6;
4

2 に答える 2

5

免責事項:現時点では、テストするmysqlデータベースにアクセスできませんが、次を使用できると思います。

delete s, r from send_txts s left join received_txts r on s.msg_link_id = r.id where r.action_id = 6;

詳細については、mysqlの削除ドキュメントを参照してください。より良い方法は、received_txtsからsendに外部キー制約を設定し、削除をカスケードすることです。

于 2010-08-04T03:43:46.190 に答える
3

個人的には USING 句を好みますが、前の回答も同様に有効です。外部キー制約の使用を検討することをお勧めします。これは、これを達成するためのはるかに効率的な方法です。

DELETE FROM s, r USING sent_txts s LEFT JOIN received_txts r ON s.msg_link_id = r.id WHERE r.action_id = 6;
于 2010-08-04T03:55:56.350 に答える