2012-04-12 7 views
0

저녁 모든과에서 삭제, 내가 PDO에 대해 다음 SQL 쿼리가 있습니다SQL은 서브 쿼리 오류

#1241 - Operand should contain 1 column(s)

:

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

그리고 어떤 이상한 이유로 나는 다음과 같은 메시지가 계속

지금; 나는 메시지가 의미하는 것이 무엇인지 이해하지만, 나는 분명히 내가 조건을 설정했음을 알 수있다. 그래서 무엇이 계속되고 있는지 확실하지 않다.

도움 주셔서 감사합니다. :;

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) 내가 그 놈의 실수 확신) 당신은 당신의 하위 쿼리에 *를 사용

1

I :이 시도

SELECT group_id FROM groups WHERE group_owner = 1 
0

시험해보십시오.

나는 이것을 테스트하지 않았지만 원하는 결과를 알지 못하지만 시도해보십시오.