mysql - SQL : Select a record by name field and all records having the same address

标签 mysql

什么 SQL 查询会按名称查找记录,以及具有相同地址但可能不同名称的所有记录?

我有一个选民登记数据库,当我查找个人时,我还想看看还有谁在该地址登记。

我的数据库称为 voters,其中的表称为 extract。如果我想通过名字找到某人,我会写

SELECT * FROM voters.extract WHERE first_name = "John" AND last_name = "Doe";

如果我想通过地址找到某人,我会写

SELECT * FROM voters.extract WHERE street_num = "100"
AND addr_unit = "A" AND street_name = "Main Street" AND town = "My Town";

所以,我想做的是通过名字找到某人,获取地址,然后找到每个人都有相同的地址。

最佳答案

您可以使用joininexists:

SELECT e.*
FROM (SELECT e.*
      FROM voters.extract e
      WHERE first_name = 'John' AND last_name = 'Doe'
     ) en JOIN
     voters.extract e
     USING (street_num, addr_unit, street_name, town);

关于mysql - SQL : Select a record by name field and all records having the same address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44217363/

相关文章:

php - 如何将当前时间戳添加到图像路径中

带有复合键的 MySQL INSERT

php - mysqli 和 mysql 插入数据库命令

mysql - 单个查询对数据进行分组

mysql - 使用两个实体表进行批量更新的 Hibernate Hql

mysql - 如何轻松地将 Django 应用程序从 mySQL 转换为 PostgreSQL?

php - 从 MySQL 数据库中的多个表中检索值

MySQL:忘记设置自动增量

sql - MySQL-单条语句查询复杂数据

MySQL - 在日期范围内按周对结果进行分组