2011-02-02 102 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)