我有一个表用户thas有以下字段
id, name, city id, country id
如何选择位于同一城市和同一国家/地区的用户?
示例
id name cityid countryid
1 ram 1 2
2 sam 5 2
3 bil 1 2
4 roy 4 6
5 bin 5 2
7 abu 7 5
什么是MySQL
查询,因此我只能获取具有相同城市ID 1和国家/地区ID 2的用户ID 1和3
如果5和国家/地区ID为2,则用户ID为2和5为同一城市。
答案 0 :(得分:1)
SELECT cityid, countryid, GROUP_CONCAT(name) names
FROM users
GROUP BY cityid, countryid
HAVING COUNT(*) > 1
答案 1 :(得分:0)
你可以把桌子加到自己身上,询问哪个城市和一个城市。国家是一样的。请务必在where子句中指定用户ID必须不同,因为每个用户都居住在同一个城市&国家本身。
SELECT u1.id, u2.id, u1.name, u2.name, u1.cityid, u2.cityid /*or whatever fields you want*/
FROM users u1
JOIN users u2
WHERE u1.id < u2.id
and u1.cityid = u2.cityid
and u1.countryid= u2.countryid