带有子查询的INSERT查询:列数与第1行的值数不匹配

Mar*_*ema 3 mysql

我有这样的查询,它使用子查询插入行:

INSERT INTO Lecture_presence_Student (`presence_id`, `Lecture_id`, `Student_id`, `status`) VALUES

(
 (
  SELECT '' as presence_id, Lecture.Lecture_id, CourseEdition_students_Student.Student_id, 'onverwerkt' 
  FROM
    CourseEdition_students_Student 
        INNER JOIN Lecture ON    CourseEdition_students_Student.CourseEdition_id = Lecture.CourseEdition_id



    )       
)
Run Code Online (Sandbox Code Playgroud)

我不明白,子选择查询返回4列,与INSERT查询的编号相同。为什么会出现错误:

Column count doesn't match value count at row 1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Tar*_*ryn 6

代替INSERT INTO VALUES使用INSERT INTO SELECT FROM

INSERT INTO Lecture_presence_Student 
(
    `presence_id`
    , `Lecture_id`
    , `Student_id`
    , `status`
) 
SELECT '' as presence_id
    , Lecture.Lecture_id
    , CourseEdition_students_Student.Student_id
    , 'onverwerkt' 
FROM    CourseEdition_students_Student 
INNER JOIN Lecture 
    ON    CourseEdition_students_Student.CourseEdition_id = Lecture.CourseEdition_id
Run Code Online (Sandbox Code Playgroud)

那么如果您在查询中获得多个记录,则该记录INSERT将起作用。