INSERT INTO
product_search_table (id, score)
VALUES (
SELECT product_id, 50 FROM cart_product WHERE product_id = 555
)
给我一个错误。我做错了什么?
555将被变量替换。
答案 0 :(得分:7)
您使用的INSERT ... SELECT查询语法不正确。
以下是你如何正确地做到这一点:
INSERT INTO product_search_table (id, score)
SELECT product_id, 50 FROM cart_product WHERE product_id = 555
答案 1 :(得分:5)
尝试
INSERT INTO
product_search_table (id, score)
SELECT product_id, 50 FROM cart_product WHERE product_id = 555
答案 2 :(得分:4)
似乎是一个语法问题。 VALUES不属于此类查询。
答案 3 :(得分:1)
选择外观周围的括号可疑 - 与VALUES一样。尝试:
INSERT INTO product_search_table (id, score)
SELECT product_id, 50 FROM cart_product WHERE product_id = 555
答案 4 :(得分:1)
使用:
INSERT INTO product_search_table
(id, score)
SELECT product_id, 50
FROM cart_product
WHERE product_id = 555
在INSERT语句中使用SELECT语句时,不要使用VALUES关键字或将SELECT括在括号中。
答案 5 :(得分:1)
你无法用VALUES做到这一点。
例如:
INSERT INTO
product_search_table (id, score)
SELECT product_id,50 FROM cart_product WHERE product_id = 555
答案 6 :(得分:-1)
我的猜测是子查询可以返回多行(理论上)。那么多行如何适合单个字段呢?您可以尝试确保查询的数据是标量值。
(我对第二场/ 50值也不太确定。)
编辑:VALUES用于插入语句人员。见this page
edit2:您只是为第一列选择数据,第二列的数据在哪里?