什么 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";
所以,我想做的是通过名字找到某人,获取地址,然后找到每个人都有相同的地址。
最佳答案
您可以使用join
或in
或exists
:
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/