JOIN 操作を使用して、またはおそらくサブクエリを含まない他の方法を使用して、別のテーブルに対応する行を持つ行をフィルタリングする方法があるかどうか疑問に思っていました。
これが私が思いついた唯一のことですが、サブクエリを使用しているため、非常に大きなテーブルを処理すると非常に遅くなる可能性があるのではないかと心配しています.
SELECT * FROM `reports` as R WHERE (
SELECT COUNT(*)
FROM `report_deletes` as RD
WHERE
RD.report_id = R.id AND
RD.user_id = 1
) = 0;