2015-11-26 103 views
-1

我有一個插入查詢,其中一個值需要是從select語句返回的管道分隔字符串。選擇語句並插入兩個完美的獨立工作,但mySql在兩個查詢合併時都會出現語法錯誤。MySql插入查詢有一個值不工作的select語句

這是我的插入查詢

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」,完美的作品,但組合不是。

我不知道我在這裏錯過了什麼。

任何幫助表示讚賞。

+0

獲取'('和')''之前和select'在最後驅除掉。 –

+0

你爲什麼要存儲一個GROUP_CONCATenated結果? (提示:你不會!) – Strawberry

+0

我需要concanated的東西,因爲它是銷售和應用此銷售的商品id之間的1→n映射。與銷售相關的所有商品的ID都存儲爲管道分隔的字符串。 –

回答

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') 
+0

這個工作只是在單個查詢中插入2行,但接受它,因爲它刪除了syntex錯誤。 –