我想要更新
UPDATE utilisateurs
SET NAME = 't',
SURNAME = 't',
LOGIN = 't',
PASSWORD = 't',
TYPE = 'Formateur',
M_ID = (SELECT M.M_ID, M.LABEL
FROM matieres AS M
WHERE M.LABEL = 'Culture_General')
WHERE U_ID = 3
但这是错误的,我不知道是怎么做到的
大概您想要:
UPDATE utilisateurs
SET NAME = 't',
SURNAME = 't',
LOGIN = 't',
PASSWORD = 't',
TYPE = 'Formateur',
M_ID = (SELECT M.M_ID
FROM matieres M
WHERE M.LABEL = 'Culture_General'
)
WHERE U_ID = 3;
子查询是标量子查询。这应该只返回一列,最多返回一行。这假设只返回一行。如果您想确定,请使用LIMIT
:
M_ID = (SELECT M.M_ID
FROM matieres M
WHERE M.LABEL = 'Culture_General'
LIMIT 1
)
或聚合:
M_ID = (SELECT MAX(M.M_ID)
FROM matieres M
WHERE M.LABEL = 'Culture_General'
)