处理select查询mysql上的空值

时间:2013-10-28 15:36:00

标签: mysql null

表股东

stockholder_id    election_id    user_id    
1                 1              1                          
2                 1              2          
3                 2              3         

表用户

user_id           user_type
1                 1
2                 1
3                 1
4                 1
5                 1


select 
    * 
from 
    tbl_users
left join tbl_stockholders
    on tbl_stockholders.user_id = tbl_users.user_id
where 
    user_type=1 
    and stockholders.user_id is null 
    and election_id <> 1

我想搜索的election_id不等于1,用户类型等于1

stockholder_id    election_id    user_id      user_type
3                 2                 3            1         
null              null              4            1
null              null              5            1

这是更新

抱歉,我的问题应该是使用参数election_id从tbl_users中排除tbl_stockholders。因为当我有一个重复的user_id时存在问题

表股东

stockholder_id    election_id    user_id    
1                 1              1                          
2                 1              2          
3                 2              3   
4                 1              3

在上一个答案中,这是elect_id&lt;&gt; 2

时的结果
stockholder_id    election_id    user_id      user_type
3                 1                 3            1         
null              null              4            1
null              null              5            1

这一定是

stockholder_id    election_id    user_id      user_type      
null              null              4            1
null              null              5            1

这是我目前无法正常工作的代码

从tbl_users中选择* 哪里不存在(从tbl_stockholders中选择*,其中election_id&lt;&gt; 2)

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * FROM users u
LEFT JOIN stockholders s ON u.user_id = s.user_id
WHERE u.user_type = 1 AND (s.election_id <> 1 OR s.election_id IS NULL)

小提琴here

答案 1 :(得分:0)

我想,这是你应该做的: select * from tbl_stockholders left join tbl_users on tbl_users.user_id = tbl_stockholders.user_id where (user_type=1 and election_id <> 1) 我不认为你打算选择null user_ids。这也会使连接无效,即你说加入了两个基于user_id的表,但是从第一个表中选择了null user_id。