首页 > 解决方案 > SQL 检查违规欺诈选民

问题描述

我正在尝试检查是否有非州居民的选民投票。

所以最后的 SQL 查询是提取所有由非该州居民的选民投票的选票

数据库设置为

voter (id, name, profile_photo, email, address)

ballot (id, date, add_group)
add_group FOREIGN KEY REFERENCES state (name) 

state (name, create_voter)
create_voter FOREIGN KEY REFERENCES voter (id)

resident_of (id, name)
id FOREIGN KEY REFERENCES voter (id)
name FOREIGN KEY REFERENCES state (name)

voted (name, ballot_id, voter_id)
name FOREIGN KEY REFERENCES state (name)
ballot_id FOREIGN KEY REFERENCES ballot (id)
voter_id FOREIGN KEY REFERENCES voter (id)

标签: sql

解决方案


Select T1.*, T2.*, T3.*
 from  voted T1
  join resident_of T2
   ON  T1.voter_id = T2.id 
  left join voter T3
   ON  T1.voter_id = T3.id
Where T1.name <> T2.name;

编辑:根据问题中提供的架构,投票表中有一个“名称”列,指的是特定于投票/选票的状态,而 resident_of 表中的“名称”列代表状态(状态名称)选民居住的地方。上面的查询将这 2 列与适当的连接进行比较,并返回这些名称(即这 2 个表中的州)对于特定选民不同的那些记录的详细信息,我相信在问题中被问到。


推荐阅读