0

晚上,我有以下 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) 我确定这是一个菜鸟错误;)

4

4 回答 4

1

*在子查询中使用,您需要选择正确的列:

SELECT group_id FROM groups WHERE group_owner = 1 
于 2012-04-12T08:41:05.397 回答
1

试试这个:

DELETE FROM group_members
WHERE group_id
    IN ( SELECT group_id FROM groups WHERE group_owner = 1 )
  AND
    user_id = 2
于 2012-04-12T08:41:12.620 回答
1

我知道您已经有了答案,但也可以考虑使用联接而不是子查询:

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
于 2012-04-12T08:47:53.173 回答
0

试试看-

DELETE FROM group_members WHERE user_id = 2 and group_id IN( SELECT * FROM groups WHERE group_owner = 1 )

我没有对此进行测试,甚至不知道您想要的结果,但请尝试一下。

于 2012-04-12T09:28:38.563 回答