【发布时间】:2021-08-19 13:13:30
【问题描述】:
我希望能得到一些有关 SQL 的帮助。
问题:
有 2 个表 - Homes 和 Owners。
家:
| ID | Name | Address | Type |
|---|---|---|---|
| 1 | home1 | Street1 | Type1 |
| 2 | home2 | Street2 | Type2 |
所有者:
| ID_home | Name | Ocupation | Sallary |
|---|---|---|---|
| 1 | BOB | Builder | 6942 |
| 2 | Jorge | Singer | 500 |
| 2 | Mike | Artist | 1000 |
房屋可以由多个所有者拥有,并且所有者可以拥有多个房屋。 Id 是每个家庭的唯一标识符,并且在两个表中都对应。
我将如何编写一个仅返回拥有超过 1 个业主的房屋(以及各自的业主)的查询。
这种情况下的预期结果是:
| ID | Name | Address | Type | Name | Ocupation | Type |
|---|---|---|---|---|---|---|
| 2 | home2 | Street2 | Type2 | Jorge | Singer | 500 |
| 2 | home2 | Street2 | Type2 | Mike | Artist | 1000 |
提前致谢!
【问题讨论】:
-
如果房屋由多个所有者拥有,并且所有者可以拥有多个房屋,则数据模型中缺少多对多表(如果您想对其进行规范化)
-
您的数据模型实际上不是多对多,而是多对一。例如,您如何代表拥有两栋房屋的业主?
-
@Alejandro 重复数据。正如我在之前的评论中所说,这是可能的,但不是标准化的(当然不推荐)
标签: sql postgresql