2011-02-02 101 views
2

MY查詢與此非常相似。因爲mysql不支持相交,我不得不找到正確的解決方案。專家plz幫助如何在mysql中實現此查詢

+0

哎呦,沒關係。我看到的東西... – 2011-02-02 16:43:04

+0

wht?不能理解。這是開玩笑嗎? – Rajasekar 2011-02-02 16:56:27

回答

1

這應該做的工作:

SELECT p.emailid 
FROM usereducation e JOIN userprofession p ON p.emailid = e.emailid 
WHERE e.presfuncarea = '$funcarea' 
AND p.totexpyear >= '$minexp' 
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

的INTERSECT僅僅是一個內部聯接,我們與其他的比較一個表中的元組,並選擇那些出現在這兩個同時除草出重複。所以

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)