我想加入两个表并选择数据并插入第三个表,但它不起作用。 代码:
$sql = "INSERT INTO attendance(cid, sid) SELECT course.cid, student.id FROM course
INNER JOIN student ON student.id=course.cid
WHERE course.cid=$course_id AND student.id=$student_id";
当我删除WHERE子句时,它可以工作。
答案 0 :(得分:0)
您需要正确连接变量。试试这个(假设您使用的是PHP),
$sql = "INSERT INTO attendance(cid, sid) SELECT course.cid, student.id FROM course
INNER JOIN student ON student.id=course.cid
WHERE course.cid=". $course_id ." AND student.id=". $student_id .";";
注意:如果cid
和student.id
是字符串,则应使用额外的单引号。但由于它们是Ids,我假设它们是数字的。
希望这有帮助,谢谢。
答案 1 :(得分:0)
看起来你有矛盾的加入和条件。
您正在student.id=course.cid
加入,然后在您检查相同字段的条件下再次加入。验证连接条件和where子句是否符合预期。