sql - 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)
解决方案
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 个表中的州)对于特定选民不同的那些记录的详细信息,我相信在问题中被问到。
推荐阅读
- python - OperationalError:无法连接到服务器。启动odoo时出错
- apache - htaccess - 重定向目录并删除 SEF url 结尾的匹配字符串
- java - 如何在java 8中用流替换for循环
- dictionary - 如何更改地图的默认值
- python - 如何使用提供的代码 Tensorflow 在迭代期间仅使用一半的 imagenet 训练集?
- mysql - 在 Ubuntu 20.04 上安装 MySQL 5.6
- .net - 如何通过参考windows日志知道windows进程(.exe)是否被其他程序强行停止/杀死?
- javascript - 如何正确反序列化响应格式
- python - OpenCV 找到内部轮廓
- javascript - Flatpickr.js 仅显示当天的第一个字母