仅在Join上解析左侧

时间:2014-01-13 19:31:25

标签: mysql sql select join left-join

在下面的代码中,我想将表c_files cf与两个括号内的第二个查询的结果(别名x)结合起来。

SELECT f_cl_path f,cf.f_id, 'xx' as jo 
FROM c_files cf 
LEFT JOIN 
    (SELECT f_cl_path f, f_id, f_workgroup, 'yy' as jo FROM myOtherTable 
     WHERE f_workgroup ='1234' AND f_status<=2) x 
ON x.f_id=cf.f_id  
WHERE cf.f_workgroup='798190' and jo='xx';

我想只获得jo='xx'的元素。但这不起作用。当我使用jo='yy'尝试时,我会得到一个结果,但我需要jo='xx'

1 个答案:

答案 0 :(得分:1)

看到您的评论后,也许这张图片可能会有所帮助。

enter image description here

如果我没错,你的情况会是这样的:

SELECT f_cl_path f,cf.f_id
FROM c_files cf
LEFT JOIN (SELECT f_cl_path f, f_id, f_workgroup FROM myOtherTable 
     WHERE f_workgroup ='1234' AND f_status<=2) as x
ON x.f_id=cf.f_id  
WHERE cf.f_workgroup='798190' and x.f_id IS NULL