我正在尝试设置一个简单的数据库,其中有一个用户并存储他们的居住地址和邮政地址。我有 2 张桌子
用户
id (Primary Key)
name (Varchar 255)
residential_id (foreign key)
postal_id (foreign key)
地址
id (primary key)
type (enum of R and P)
street (varchar 255)
suburb (varchar 255)
我正在尝试进行内部连接,所以我最终得到了一个看起来像的结果集。
id - 名称 - 住宅街道 - 住宅郊区、邮政街道、邮政郊区
我不断收到地址详细信息的空结果,我认为这是因为我从地址表中获取了两组数据并且存在冲突。是否可以同时返回与住宅 ID 和邮政 ID 关联的地址字段?
我的 SQL 语法是
SELECT * FROM users
LEFT JOIN address
ON (users.residential_id = address.id AND users.postal_id = address.id)
编辑。正如已经指出的那样,我的数据库设计相当糟糕,我正在寻求改进它。我想要实现的关键是我可以存储一个人的详细信息以及他们相关的住宅和邮政地址。我永远不会寻求扩展数据库以包含例如工作地址,因此希望能够降低表格的复杂性。