私は2つのテーブルを持っています:
テーブルgroupMessage
はレコード グループ ユーザー メッセージに使用されます
テーブルgroupMessageNum
は、メッセージ数が 300 を超えるレコードに使用されます。
-------------------
| groupMessage |
|-----------------|
| id |
| hostId |
| roomId |
===================
---------------------
| groupMessageNum |
|-------------------|
| id |
| hostId |
| roomId |
=====================
のレコードを削除しようとしてgroupMessage
います。groupMessageNum
また、 のレコードも削除しようとしていgroupMessageNum
ます。
削除件数がgroupMessage
300件を超える場合は、300件目以降を削除させていただきます。
私のSQLは:
delete group, groupNum from groupMessage group, groupMessageNum
groupNum where group.hostId = groupNum.hostId and group.roomId =
groupNum.roomId;
これにより、groupMessage のすべてのレコードが削除されます。
では、どうすれば 300 番目以降のレコードのみを削除できますか?
例:
100 人のユーザーがいて、60 人のユーザーが 300 を超えるメッセージを持っています。すべてのユーザー メッセージは groupMessage テーブルにあります。メッセージが 300 を超えているため、60 人のユーザー ID が groupMessageNum に含まれています。
今、私は 300 番目のメッセージ以降にあるユーザーのメッセージを削除しようとしています。したがって、最初に groupMessageNum テーブルでユーザー ID を見つけてから、groupMessage テーブルでそれらのメッセージを削除します。