Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Masukkan menggunakan LEFT JOIN dan INNER JOIN

Anda harus spesifik tentang kolom yang Anda pilih. Jika user . Anda tabel memiliki empat kolom id, name, username, opted_in Anda harus memilih dengan tepat keempat kolom tersebut dari kueri. Sintaksnya terlihat seperti:

INSERT INTO user (id, name, username, opted_in)
  SELECT id, name, username, opted_in 
  FROM user LEFT JOIN user_permission AS userPerm ON user.id = userPerm.user_id

Namun, tampaknya tidak ada alasan untuk bergabung dengan user_permission di sini, karena tidak ada kolom dari tabel itu yang akan dimasukkan ke user . Faktanya, INSERT . ini tampaknya pasti akan gagal dengan pelanggaran keunikan kunci utama.

MySQL tidak mendukung penyisipan ke beberapa tabel secara bersamaan. Anda juga perlu melakukan dua INSERT pernyataan dalam kode Anda, menggunakan id sisipan terakhir dari kueri pertama, atau buat AFTER INSERT pemicu di tabel utama.

INSERT INTO user (name, username, email, opted_in) VALUES ('a','b','c',0);
/* Gets the id of the new row and inserts into the other table */
INSERT INTO user_permission (user_id, permission_id) VALUES (LAST_INSERT_ID(), 4)

Atau menggunakan pemicu :

CREATE TRIGGER creat_perms AFTER INSERT ON `user`
FOR EACH ROW
BEGIN
  INSERT INTO user_permission (user_id, permission_id) VALUES (NEW.id, 4)
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara membuat menu dinamis dengan submenu dengan php &mysql

  2. node.js async/menunggu menggunakan dengan MySQL

  3. Laravel:Cara mendapatkan koleksi fasih yang diurutkan khusus menggunakan metode whereIn

  4. PHP MySQL Google Chart JSON - Contoh Lengkap

  5. Tutorial MySQL :Pernyataan MySQL IN (Lanjutan)