문제

IN 내부의 다른 필드의 값을 사용하려고합니다.

SELECT types.id, title, auth_users.types
FROM types
LEFT JOIN auth_users ON auth_users.id IN (8,9)
WHERE types.id IN (1,2,3)
GROUP BY types.id

공장

SELECT types.id, title, auth_users.types
FROM types
LEFT JOIN auth_users ON auth_users.id IN (8,9)
WHERE types.id IN (auth_users.types)
GROUP BY types.id

작동하지 않습니다

http://pastebin.com/m76ae0596 더 많은 정보는 여기에서 찾을 수 있습니다

auth_users.types = 1,2,3
도움이 되었습니까?

해결책

사용해야합니다 FIND_IN_SET -이 질문을 참조하십시오. MySQL : 연산자에서 사용 설명서를 선택하십시오

다른 팁

안타깝게도, IN (...) 일치하려는 값을 추출하기 위해 Varchar 필드 값을 구문 분석하려고 시도하지 않습니다.

기본적으로 "type.id"가 "1, 2, 3"중 하나인지 확인합니다 (예 : 1, 2 또는 3이 아니라 실제 단일 값 "1, 2, 3").

이를 해결하는 한 가지 방법은 결과 집합을 반환하는 데이터베이스에 함수를 갖고 해당 바르 숯 값을 취하고 구문 분석하고 예제에 대해 3 행을 반환하는 것입니다.

그 외에, 당신은 같은 사용 (끔찍하게 수행)을 다시 작성하거나 해당 값을 직접 구문 분석하고 결과를 SQL에 직접 배치해야합니다.

노력하다 행 하위 쿼리:

 SELECT column1,column2,column3
   FROM t1
   WHERE (column1,column2,column3) IN
         (SELECT column1,column2,column3 FROM t2);

편집하다:

실제로, 페이스트 빈을보고, 당신은 "1,2,3"을 단일 줄에 바르 르 차로 저장하고 있습니까? 그것은 작동하지 않을 것입니다.

나는 그가 간단한 가입을 찾고 있다고 생각합니다

left on auth_users on type.id = auth_users.types

auth_users.id in (8,9)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top