这个错误大致的意思就是你不能在同一语句中,先select出同一表中的某些值,再update或者insert这个表。
我出错的语句大致是这样:
- INSERT INTO sys_user
- VALUES
- (
- NULL,
- 'JackeyLove',
- (
- SELECT
- id
- FROM
- sys_user
- WHERE
- name = 'Uzi'
- )
- );
我想先根据name = 'Uzi'查出sys_user表对应的id值,然后插入到sys_user表,这就违反标题中的错误了,那么如何改呢?
我们只需要外面包一层皮即可:
- INSERT INTO sys_user
- VALUES
- (
- NULL,
- 'JackeyLove',
- (
- SELECT
- USER .id
- FROM
- (
- SELECT
- id
- FROM
- sys_user
- WHERE
- NAME = 'Uzi'
- ) AS USER
- )
- );