同様の質問がいくつか見つかりましたが、障害を乗り越えられるものはありませんでした。(これはMySQLで「存在しない場合に挿入する」方法に近いですか? )
1 つのテーブルから 1 つを除くすべての ID を読み取り、それらを使用して別のテーブルを更新する必要があります。宛先テーブルには 2 つの列があります。それらの列の 1 つはその外部 ID でなければなりません。もう一方の列を、クエリにハード コードした数値にしたい。
このような:
letter_id drop_letter_id
10 99
アプリケーションで何が起こるかというと、誰かがレター 10 をサブスクライブすると、レター 99 からサブスクライブが解除されます。99 は、他のものをサブスクライブしていない人だけのものにしたいので、99 以外のすべてのレター ID を見つける必要があります。そして、それらをこのドロップテーブルに次のように追加します
letter_id drop_letter_id
x 99
y 99
ここで、x と y はその他の文字 ID 番号です。
みたいな
SELECT letter_id FROM letters WHERE letter_is<>99
その後
INSERT IGNORE INTO letter_drops (x,99)...