2015-10-15 102 views
0

我有两个表如下如何从mysql中的连接表中获取不等行?

user_job_applied

user_job_applied

company_viewed_user

company_viewed_user

我想为user_job_applied表中的相关job_id取不在company_viewed_user表中的行。 我写了下面的查询,但它没有抓住

SELECT 
    `user_job_applied`.user_id 
FROM 
    `user_job_applied` 
LEFT JOIN 
    `company_viewed_user` 
ON 
    `company_viewed_user`.user_id ON `company_viewed_user`.user_id = `user_job_applied`.user_id        
WHERE 
    `company_viewed_user`.user_id IS NULL AND 
    `company_viewed_user`.emp_id IN (SELECT user_id 
            FROM company_user 
            WHERE company_id='1') 
AND 
    `user_job_applied`.job_id = '1'; 

输出应该如下 enter image description here

+0

你'LEFT JOIN'没有看到加入任何东西,它不应该是'ON company_viewed_user.user_id = user_job_applied。 user_id'? – dstudeba

+0

你为什么标记php? –

+0

让我们看到有一个条件在左连接 – user3391137

回答

0

想在移动EMP_ID条件,左连接语句从where子句

SELECT 
`user_job_applied`.user_id 
FROM 
`user_job_applied` 
LEFT JOIN `company_viewed_user` ON `company_viewed_user`.user_id = `user_job_applied`.user_id AND 
                   `company_viewed_user`.emp_id IN (SELECT user_id FROM company_user WHERE company_id='1')        
WHERE 
`company_viewed_user`.user_id IS NULL AND       
`user_job_applied`.job_id = '1'; 
0

您可以使用下面的查询

SELECT uja.user_id 
FROM `user_job_applied` AS uja 
LEFT JOIN `company_viewed_user` AS cvu ON cvu.user_id = uja.user_id        
WHERE cvu.user_id IS NULL; 

如果你想添加任何其他过滤器,然后你可以包括你自己或让我知道。

增加了新的条件

SELECT uja.user_id 
FROM `user_job_applied` AS uja 
JOIN company_user AS cu ON cu.user_id=uja.emp_id 
LEFT JOIN `company_viewed_user` AS cvu ON cvu.user_id = uja.user_id        
WHERE uja.job_id=1 AND cu.company_id=1 AND cvu.user_id IS NULL; 

注意:如果JOB_ID和COMPANY_ID没有整型,然后用引号括起来。

+0

我也贴代码就像你说的..但它没有给出结果 – user3391137

+0

PLZ执行一次检查结果,希望你能得到期望的结果。 –

+0

没有emp_id条件它正在工作..with emp_id查询就像下面的回答帖子。 – user3391137

相关问题