WHERE a.field = (SELECT a.field FROM a INNER JOIN b ON a.field = b.field)
어떻게 비교할 수 있습니까? 이 쿼리는 '이 쿼리 문을 반환했습니다. 서브 쿼리는 둘 이상의 행을 반환합니다'하위 쿼리에 의해 반환 된 모든 행과 필드를 비교하는 방법
서브 쿼리가 반환 한 모든 결과와 비교할 수 있습니까?
WHERE a.field = (SELECT a.field FROM a INNER JOIN b ON a.field = b.field)
어떻게 비교할 수 있습니까? 이 쿼리는 '이 쿼리 문을 반환했습니다. 서브 쿼리는 둘 이상의 행을 반환합니다'하위 쿼리에 의해 반환 된 모든 행과 필드를 비교하는 방법
서브 쿼리가 반환 한 모든 결과와 비교할 수 있습니까?
당신은 하위 쿼리와 함께 IN 절 수를 사용 할 수 있어야한다 :
WHERE (a.field = b.field에 INNER JOIN B의 a.field를 선택) IN a.field
http://dev.mysql.com/doc/refman/5.1/en/any-in-some-subqueries.html
세 가지 방법으로 모든 행을 비교할 수 있습니다.
WHERE ou.field in (SELECT a.field
FROM a
INNER JOIN b
ON a.field = b.field)
또는 Exists
WHERE exists (SELECT a.field
FROM a
INNER JOIN b
ON a.field = b.field
where ou.field=a.field)
를 사용하거나 논리가 불완전하지만,에 하위 쿼리를 변경하는 경우 Inner Join
Ou Inner Join (SELECT a.field
FROM a
INNER JOIN b
ON a.field = b.field) c
On ou.field = c.field
확실하지 사용
사용
In
연산자는'SELECT .. .LIMIT 1' 또는 어쩌면'SELECT MAX (a.field)'는 강제로 정확히 하나의 행을 반환하는 하위 쿼리 – ryanyuyu@ryanyuyu 하위 쿼리로 반환 된 모든 행과 비교하고 싶습니다. – therazerme
쿼리가 반환 할 결과 집합을 설명하고 이상적으로는 쿼리에 포함 된 테이블을 설명하십시오. –