SQL INSERT INTO表(a,b,c)VALUES(:a,:b,:c,SELECT ...)

时间:2016-05-05 00:00:06

标签: php mysql sql

所以我试图在表格中插入4个值。我从POST获得3个值,而另一个我希望从另一个表中获取它。这就是我考虑实现它的方式,但它似乎并没有起作用。有什么建议吗?

dill

1 个答案:

答案 0 :(得分:1)

在SQL中,所有子查询都需要用自己的括号括起来。因此,您可以使用以下方法修复查询:

INSERT INTO topics (subject, data, uid, role)
    VALUES (:user, :pass, :uid, (SELECT role FROM users WHERE uid = :uid));

就个人而言,我更喜欢INSERT . . . SELECTSELECT

INSERT INTO topics (subject, data, uid, role)
    SELECT :user, :pass, :uid, u.role
    FROM users u
    WHERE uid = :uid;