2014-12-12 2 views
0

범주 기반 검색과 키워드 검색에서 모두 발견 된 결과를 찾으려고합니다. 그러나 phpMyAdmin을,이 코드는 오류를 가져오고있다 :이 오류가 발생하고INTERSECT 연산자를 사용할 때 SQL 오류가 발생했습니다.

SELECT ID, post_title 
FROM wp_5_posts AS p 
LEFT JOIN wp_5_term_relationships AS r ON p.ID = r.object_id 
WHERE r.term_taxonomy_id 
IN (41, 9) 
AND p.post_type = 'attachment' 
GROUP BY p.ID 
HAVING COUNT(*)>1 

INTERSECT 

SELECT ID, post_title 
FROM wp_5_posts 
WHERE post_title 
LIKE '%process%' 
AND post_type='attachment' 

:

"# 1064 - 당신은 당신의 SQL 구문에 오류가있다; MySQL의에 해당하는 설명서를 확인을 근처 사용할 수있는 권리 구문에 대한 서버 버전 '교차로 SELECT ID, wp_5_posts FROM POST_TITLE을 WHERE POST_TITLE LIKE'라인 11 "에서 %의 powd '

사람이 문제가 무엇인지 나에게 설명 할 수

+0

mysql의 INTERSECT는 사용할 수 없다. –

+0

MySQL에서 INTERSECT는 함수가 아니라 UNION ALL과 GROUP BY를 사용하여 사용할 수 있다고 생각합니다. – HaveNoDisplayName

답변

0

Y 시도해 볼 수 있지만 개념은 이와 같아야한다.

SELECT ID, post_title from (
    (
    SELECT ID, post_title 
    FROM wp_5_posts AS p 
    LEFT JOIN wp_5_term_relationships AS r ON p.ID = r.object_id 
    WHERE r.term_taxonomy_id IN (41, 9) AND p.post_type = 'attachment' 
) 
    UNION ALL 
    (
    SELECT ID, post_title 
    FROM wp_5_posts 
    WHERE post_title LIKE '%process%' AND post_type='attachment' 
) 
) AS t1 GROUP BY ID HAVING COUNT(*)>1; 
관련 문제