通过与MySQL的多对多关系查找未在选举中投票的选民

问题描述 投票:-1回答:1

我有两个通过多对多关系链接的表。表一包含具有ID的所有选民,表二包含具有ID的所有选举,表三使用其ID链接两个表。

[并非所有选民在所有选举中都投票。我想查询多对多关系,以找到未投票的每个选民的选举。我使用的是MySQL。

mysql sql sql-server many-to-many outer-join
1个回答
0
投票

一种典型的解决方案是用cross join生成所有可能的选民和选举组合,然后尝试用left join生成连接表:在没有记录匹配的地方,您知道选民错过了选举。 >

考虑:

select v.voter_id, e.election_id
from voters v
cross join elections e
left join voter_elections ve 
    on  ve.voter_id = v.voter_id
    and ve.election_id = e.election_id
where ve.voter_id is null
© www.soinside.com 2019 - 2024. All rights reserved.