2013-07-12 3 views
0
내가 특정 목록을 차단하려고

에서 이름을 제외,이 이름 NOT IN (SELECT * FROM 내가 그것을 차단하려는 사용자 이름을 포함하는 테이블을 제외의 나MySQL이 차단 된 테이블

)를 제외하지만에 나타납니다

SELECT * FROM USER LIMIT 0, 50 WHERE 내가

을 시도 명령이다 일하지 않아. 왼쪽으로

+0

"작동하지 않는 것 같습니다."는 아닙니다. 당신이 가진 문제에 대한 설명. 우리는 당신이 그것을 설명하지 않는다면 "일하지 않는다"는 것을 전혀 모릅니다. 해결을 도와 줄 수있는 문제에 대해 구체적으로 설명하십시오. 우리는 귀하의 화면을 보거나 우리의 위치에서 당신의 마음을 읽을 수 없으므로 귀하의 질문에 귀하가 제공 한 정보 만 보유하고 있습니다. 감사. –

답변

1

레코딩이 조인 - 제외에서 당신이 선택에서 일치하는 필드를 반환하지 않는 모든 필드를 필요가 이전과 같은 스타일을 사용하고 싶었다 경우

SELECT `USER`.* 
FROM `USER` 
LEFT OUTER JOIN exclude 
ON `USER`.name = exclude.name 
WHERE exclude.name IS NULL 
LIMIT 0, 50 

(즉,하지

SELECT * 
FROM `USER` 
WHERE name NOT IN (SELECT name FROM exclude) 
LIMIT 0, 50 
+0

감사합니다. – user1396982

+1

일부 MySQL 엔진 및 로켈 조합은 테이블 및 열 이름과 관련하여 대소 문자를 구분하므로 위 응답에서 "USER'.name = exclude.name"에 대문자'USER'를 사용하는 것이 더 정확합니다 . 허용 된 답변을 수정하기위한 편집을 동료 검토자가 허용하지 않았으므로 대신 댓글로 게시하고 있습니다. – linguanerd

+0

위 사실입니다. 일치하는 답변을 편집합니다. – Kickstart

0

이 시도) SELECT * :

SELECT * FROM USER LIMIT 0, 50 WHERE name NOT IN (SELECT name FROM exclude)

,

쿼리가 작동하지 않을 가능성이 가장 큰 이유는 exclude 테이블에 쿼리가 실행될 때 오류가 발생하는 열이 두 개 이상 있기 때문입니다.