2012-01-10 59 views
0

我遇到以下查询问题。通过查询,我试图为每个匹配子选择收件人ID字段的用户在通知表中插入一行。与MySQL复杂插入(多选行插入与子选择)的问题

查询我有如下,但不工作:

INSERT INTO 
notification (type, 
     target_id, 
     sender_id, 
     recipient_id, 
     data, 
     timestamp, 
     is_unread) 
     ('post', 
     '$id', 
     '$senderId', 
     (SELECT user_id FROM group_member WHERE group_id = '$id'), 
     '1', 
     '$timestamp', 
     '1') 

我也尝试使用前缀,我试图把信息插入值,但我读的地方,多行插入你”重新排除它,只是使用括号中的值,因为我已经在上面了?

+0

如果你想嵌入你的字符串变量,你应该将它们包装在双引号。 – 2012-01-10 23:35:04

回答

0

假设您的变量是正确转义,你可以做

INSERT INTO 
    notification (type,target_id,sender_id,recipient_id, 
    data,`timestamp`,is_unread) 
    SELECT 'post', '$id','$senderId',user_id, '1','$timestamp', '1' 
    FROM group_member WHERE group_id = '$id' 
+0

太棒了!谢谢! – 2012-01-11 10:43:34