你能帮我解决这个问题吗?
我有如下 2 个表:
属性
| id | name | |----+--------------| | 1 | first_name | | 2 | last_name | | 3 | email |
属性值
| uid | attr_id | value | |-------+-----------|-----------| | 1 | 1 | Hello | | 1 | 2 | world | |-------+-----------|-----------| | 2 | 1 | A | | 2 | 2 | B | | 2 | 3 | a@xzy.com |
即使表 attribute_values 中不存在属性,我也想编写一个查询来选择用户的属性。然后,我想得到空值的结果。
例如选择用户id 1
| name | value | |---------------|-----------| | first_name | Hello | | last_name | world | | email | NULL |
用户编号 2
| name | value | |---------------|-----------| | first_name | A | | last_name | B | | email | a@xzy.com |
用户 id 3 (不存在于 attribute_values 中)
| name | value | |---------------|-----------| | first_name | NULL | | last_name | NULL | | email | NULL |
是否有通过一个查询获得上述 3 个示例结果的最佳方法?
谢谢。
最佳答案
SELECT a.*, b.value
FROM attributes a
LEFT JOIN attribute_values b
ON a.ID = b.attr_id AND b.uid = 1
关于MYSQL - 连接 2 个表,左表上有完整的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600755/