麻烦加入mysql和AND

时间:2015-05-29 05:30:31

标签: mysql

我想加入两个表并选择数据并插入第三个表,但它不起作用。 代码:

$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子句时,它可以工作。

2 个答案:

答案 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 .";";

注意:如果cidstudent.id是字符串,则应使用额外的单引号。但由于它们是Ids,我假设它们是数字的。

希望这有帮助,谢谢。

答案 1 :(得分:0)

看起来你有矛盾的加入和条件。 您正在student.id=course.cid加入,然后在您检查相同字段的条件下再次加入。验证连接条件和where子句是否符合预期。