SQL从子查询错误
问题描述:
晚上都删除,我有以下SQL查询PDO:SQL从子查询错误
DELETE FROM group_members WHERE group_id IN(SELECT * FROM groups WHERE group_owner = 1) AND user_id = 2
而对于一些奇怪的原因,我不断收到以下消息:
#1241 - Operand should contain 1 column(s)
现在;我明白这条信息的意思,但我可以清楚地看到,我已经设置了一个条件,所以我不太清楚发生了什么事情。
感谢您的帮助! :O)我敢肯定它是一个小白错误;)
答
你在你的子查询中使用*
,您需要选择正确的列:
SELECT group_id FROM groups WHERE group_owner = 1
答
试试这个:
DELETE FROM group_members
WHERE group_id
IN (SELECT group_id FROM groups WHERE group_owner = 1)
AND
user_id = 2
答
我知道你已经有了答案,还可以考虑使用联接而不是子查询:
DELETE gm.*
FROM group_members AS gm
JOIN groups g
ON gm.group_id = g.id
WHERE gm.user_id = 2
AND g.group_owner = 1
答
给它一个try-
DELETE FROM group_members WHERE user_id = 2 and group_id IN(SELECT * FROM groups WHERE group_owner = 1)
我还没有测试过这个,甚至不知道你想要的结果,但试试这个。
更改*到group_id – 2012-04-12 08:39:53
就是这样!我知道这很简单。感谢那。您应该将其作为解决方案发布;) – Menztrual 2012-04-12 08:41:00
我在iPad上。格式化代码等工作量太大 – 2012-04-12 08:42:35