我正在尝试插入几条记录:
{{1}}
但我得到了这个错误:
[查询1中的错误]子查询返回多行
在这种情况下,我必须插入2条记录。我怎么能执行这个查询?
答案 0 :(得分:1)
你可以试试这个。不过,这会将笛卡尔加入用户的徽章。因此,如果您选择两个用户和两个徽章,您将获得四行插入。但我认为这就是你想要实现的目标。
INSERT INTO instructor_badges (id, user_id, badge_id, is_active, is_manual, created)
SELECT UUID(), users.id, badges.id, '1', '0', NOW()
FROM users
JOIN badge
WHERE users.email IN( 'carlos+01@comp.com', 'carlos+223344@comp.com' )
&& badges.slug = 'elearning_nutrition'
答案 1 :(得分:0)
好的我用这种方式解决了,还有另一种更好的方法,因为我必须在第一个位置写user_id:
SET @badge_id = (select `id` from badges where `slug` = 'elearning_nutrition');
INSERT INTO `instructor_badges` (`user_id`, `id`, `badge_id`, `is_active`, `is_manual`, `created`)
select `id` , UUID(), @badge_id , '1', '0', NOW() from users where `email` IN( 'german+01@zumba.com', 'german+223344@zumba.com' )