2012-04-12 4 views
0

イブニングすべてでから削除し、私はPDOのために、次のSQLクエリを持っています。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)

今すぐ;私はメッセージが意味することを理解していますが、私は後に状態を設定しているので、何が起こっているのか分かりません。

ありがとうございました! :;

DELETE FROM group_members 
WHERE group_id 
    IN (SELECT group_id FROM groups WHERE group_owner = 1) 
    AND 
    user_id = 2 
+3

*をgroup_idに変更する –

+0

それでした!私はそれが何か簡単だと分かっていました。ありがとうございました。あなたは解決策として投稿する必要があります;) – Menztrual

+0

私は私のiPadにいる。コードの書式設定などにはあまりにも多くの労力が必要です。 –

答えて

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 
1

O)私はそのnoobのミス確信している)あなたのサブクエリで*を使用

1

I:これを試してみてください

SELECT group_id FROM groups WHERE group_owner = 1 
0

はそれをtry-を与えます

私はこれをテストしておらず、あなたの望む結果を知りませんが、これを試してみてください。