如何在MariaDB中更新基于联接表的行?

Gag*_*ous 3 sql mariadb

我有这样的SQL:

UPDATE "user_login a" 
    LEFT OUTER JOIN "p_pegawai b" 
    ON a.id_pegawai = b.id  
    SET a.password = 'Keluarga1'  
    WHERE b.NIP = '195812' 
Run Code Online (Sandbox Code Playgroud)

我已经试过了: MySql更新联接表

但它总是给我错误

您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在行1的'“ user_login a”左外部联接“ p_pegawai b”上使用a.id_pegawai = b.id SET a.passw'

我使用的是MariaDB,而不是Mysql,查询可能出什么问题?

Tim*_*sen 8

您当前将整个表名和别名放在双引号中。删除双引号,更新查询应该可以工作:

UPDATE user_login a 
LEFT JOIN p_pegawai b
    ON a.id_pegawai = b.id
SET a.password = 'Keluarga1'  
WHERE b.NIP = '195812';
Run Code Online (Sandbox Code Playgroud)

虽然双引号(以及反引号)是转义列名或表名的一种方法,但在您的情况下不需要这样做。


Use*_*ady 8

在MySQL中使用反引号,但不要将它们应用到组合表和别名中,必须将它们视为单独的项

UPDATE `user_login` a 
    LEFT OUTER JOIN `p_pegawai` b
    ON a.id_pegawai = b.id  
    SET a.password = 'Keluarga1'  
    WHERE b.NIP = '195812' 
Run Code Online (Sandbox Code Playgroud)