MySql插入查询,其中一个值的select语句不起作用

时间:2015-11-26 14:22:47

标签: mysql nested-queries

我有一个插入查询,其中一个值需要是从select语句返回的管道分隔字符串。选择语句并插入两者完全独立,但是当两个查询合并时,mySql会出现语法错误。

这是我的插入查询

INSERT INTO sales (site_id, name, start_date, end_date, per_item_discount, enabled,entry_ids) 
VALUES (1, 'auto', 1448662620, 1448749020, 2.0000, 1,
        (SELECT GROUP_CONCAT(DISTINCT entry_id SEPARATOR '|') 
         FROM data
         JOIN relationships ON data.entry_id = relationships.parent_id
         WHERE (relationships.child_id = 18 AND data.id_5 = 'VHK-SG') ))

现在这两个查询单独,select语句和使用硬编码的entry_ids(如'1 | 2')插入,效果很好,但组合不是。

我不确定我在这里失踪了什么。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您需要更改语法。检查this

您应该执行以下操作:

INSERT INTO sales 
(site_id,name,start_date,end_date,per_item_discount,enabled,entry_ids) 
SELECT 1,'auto',1448662620,1448749020,2.0000,1,GROUP_CONCAT(DISTINCT entry_id SEPARATOR '|')
FROM data JOIN relationships ON data.entry_id = relationships.parent_id 
WHERE (relationships.child_id = 18 AND data.id_5 = 'VHK-SG')