Rumah  >  Soal Jawab  >  teks badan

Tidak dapat menggunakan LIMIT delete dalam mysql join query antara berbilang jadual

Ini adalah pertanyaan SQL saya:

DELETE gur
FROM group_master gm
JOIN group_users gu
ON gu.group_id=gm.id
JOIN group_user_roles gur
ON gur.group_user_id=gu.id
WHERE gm.school_code = 14741359 AND gm.ayid=3
LIMIT 1;

Saya mendapat ralat mengatakan terdapat ralat sintaks berhampiran LIMIT. Saya menemui penyelesaian di sini: PADAM menggunakan LEFT JOIN dengan LIMIT dalam MySQL. Saya tidak boleh menukar pertanyaan kepada pernyataan pilih.

P粉180844619P粉180844619185 hari yang lalu392

membalas semua(1)saya akan balas

  • P粉166675898

    P粉1666758982024-04-02 00:49:42

    Hanya meja tunggal DELETE menyokong LIMIT. < /p>

    Gunakan pertanyaan sebagai SELECT dengan LIMIT dan dapatkan ID baris (ingat - LIMIT tanpa ORDER BY adalah loteri). Kemudian padamkan baris yang sepadan daripada salinan jadual yang lain.

    DELETE group_user_roles 
    FROM group_user_roles 
    JOIN (SELECT gur.id
          FROM group_master gm
          JOIN group_users gu ON gu.group_id=gm.id
          JOIN group_user_roles gur ON gur.group_user_id=gu.id
          WHERE gm.school_code = 14741359 AND gm.ayid=3
          /* ORDER BY ??? */ LIMIT 1
          ) USING (id)
    

    akan id 替换为 group_user_roles menjadi kunci utama atau lajur/ungkapan unik jadual.

    balas
    0
  • Batalbalas