架构在这里:
GROUP 1 ----> * USER 1 ----> 1人1 ---> * ADRESSE 1 -----> 1个城市
我想只获得属于所有用户
的城市是可能本地使用sql还是我需要迭代地执行它。
以简单的方式说:我只想要一个城市列表,其中该组的每个用户都与...有关。
不要专注于现实生活,在这个模型中,用户可以拥有数千个城市......
我可以尝试绘制它(可能更简单)
GROUP 1 -----> USER 1 -> PERSON 1-> ADRESSE 1 -> CITY 1
-----> USER 2 -> PERSON 2-> ADRESSE X -> CITY 1
-----> USER 2 -> PERSON 2-> ADRESSE Y -> CITY 2
-----> USER 3 -> PERSON 3-> ADRESSE Z -> CITY 1
I want only CITY 1
答案 0 :(得分:1)
这会让你入门吗?
Select cityname, count(distinct userID)
from User u inner join Person p on u.personID = p.personID
inner join Adresse a on p.addressID = a.addressID
inner join City c on a.cityID = p.cityID
group by cityName
答案 1 :(得分:0)
假设您在每个表中都有ID字段将它们绑定在一起...使用这种类型的where子句将只返回具有城市的行...
Select *
from Group, User, Person, Adresse, City
where city.cityID = addresse.cityID
and addresse.addressID = person.adresse.addressID
and person.personID = user.personID
and user.userID = group.userID