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

すでに答えがあることはわかっていますが、サブクエリの代わりに結合を使用することも検討してください。

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 に答える
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 に答える
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 に答える