Insert dữ liệu từ kết quả mệnh đề select vào một bảng khác trong mysql

Để hiểu rõ hơn về trường hợp này tôi xin đưa ra ví dụ sau. Ta có 2 bảng gồm nguoidungphanquyen. Trong đó:

Bảng nguoidung

tendangnhap matkhau
nguyenvana matkhaunguyenvana
nguyenvanb matkhaunguyenvanb

Bảng phanquyen

tendangnhap machucnang duocsudung
nguyenvana 1 1
nguyenvana 2 1
nguyenvana 3 0
nguyenvana 4 1

Khi đó ta muốn tài khoản nguyenvanb có quyền y như quyền của tài khoản nguyenvana.

Để thực hiện việc sao chép này chúng ta sử dụng lệnh select tất cả quyền của tài khoản nguyenvana bao gồm các trường machucnang, duocsudung trong bảng phanquyen rồi insert chúng vào bảng phanquyen nhưng trường tendangnhapnguyenvanb. Cụ thể như sau:

INSERT INTO phanquyen(tendangnhap, machucnang, duocsudung)

SELECT 'nguyenvanb', machucnang, duocsudung FROM phanquyen WHERE tendangnhap = 'nguyenvana';

Sau khi chạy câu lệnh trên, bảng phân quyền sẽ được thêm 4 dòng và trở thành:

tendangnhap machucnang duocsudung
nguyenvana 1 1
nguyenvana 2 1
nguyenvana 3 0
nguyenvana 4 1
nguyenvanb 1 1
nguyenvanb 2 1
nguyenvanb 3 0
nguyenvanb 4 1

nosomovo

Chia sẻ lên
WEB5k - Thiết kế website giá rẻ chuẩn SEO