2011-02-02 4 views
2

MY 쿼리는 이와 매우 비슷합니다.mysql에서이 쿼리를 구현하는 방법

(SELECT emailid FROM usereducation WHERE presfuncarea = '$funcarea') 
intersect 
(SELECT emailid FROM userprofession WHERE totexpyear >= '$minexp') 

mysql은 intersect를 지원하지 않으므로 올바른 해결책을 찾아야했습니다. 전문가 plz 도움

+0

으악를, 신경 끄시 고. 나는 물건을보고있다. .. –

+0

wht? 이해할 수 없다. 농담이야? – Rajasekar

답변

1

이로 다시 작성할 수 있습니다 :

SELECT p.emailid 
FROM usereducation e JOIN userprofession p ON p.emailid = e.emailid 
WHERE e.presfuncarea = '$funcarea' 
AND p.totexpyear >= '$minexp' 
+0

다른 테이블에 가입하고 싶다면 ...? plz help mate – Rajasekar

0

MySQL은 EXISTS를 지원합니다.

SELECT UE.emailid 
FROM usereducation AS UE 
WHERE UE.presfuncarea = '$funcarea' 
    AND NOT EXISTS 
    (
    SELECT * FROM userprofession AS UP 
    WHERE UE.emailid = UP.emailID AND UP.totexpyear >= '$minexp' 
    ) 
0

에서 :이 작업을해야 우리가 다른 사람들과 한 테이블의 튜플을 비교할 경우 http://www.bitbybit.dk/carsten/blog/?p=71

교집합은 단순히 내부 조인하고, 모두 잡초 반면에 나타나는 사람들을 선택 밖으로 중복. 그래서

SELECT member_id, name FROM a 
INTERSECT 
SELECT member_id, name FROM b 

은 단순히 일을해야

SELECT a.member_id, a.name 
FROM a INNER JOIN b 
USING (member_id, name) 
관련 문제