我有两个表,结构类似如下:
一个用户可以有一个“家庭”地址(非必需),以及多个“办公室”地址。我已经有了一个连接来获取用户地址,但是如果用户有一个“家庭”地址,我希望获取该地址,而不是“办公室”地址。
那么,如果存在“家庭”地址,我该如何获取它,只有当不存在时才获取“办公室”地址。(实际上,查询要复杂得多,连接涉及4-5个表)。
表名:user |
---|
字段:id、active_office_address_id(可以为0) |
表名:user_address |
---|
字段:id、user_id、type(家庭、办公室) |
那么,如果存在“家庭”地址,我该如何获取它,只有当不存在时才获取“办公室”地址。(实际上,查询要复杂得多,连接涉及4-5个表)。
SELECT * FROM user LEFT JOIN user_address ON (user.id = address.user_id AND
(user_address.type = "home" OR user.active_office_address_id = user_address.id))
group by user.id