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

Finding voters that did not vote in an election through a many to many relationship with MySQL

我有两个 table 通过多对任何关系链接在一起。 Table 一个包含所有具有 ID 的选民,table 两个包含所有具有 ID 的选举,table 三个链接都 table 使用他们的 ID。

并非所有选民都在所有选举中投票。我想查询多对多关系以找到他们没有投票的每个选民的选举。我正在使用 MySQL.

一个典型的解决方案是用 cross join 生成选民和选举的所有可能组合,然后尝试将 table 与 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