0

表股东

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

在上一个答案中,这是election_id<>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

这是我目前不工作的代码

select * from tbl_users where not exist (select * from tbl_stockholders whereelection_id <> 2)

4

2 回答 2

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)

在这里拉小提琴。

于 2013-10-28T15:52:20.820 回答
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。

于 2013-10-28T15:54:54.840 回答