你能帮我解决这个问题吗?
我有两张表格如下:
属性
| id | name | |----+--------------| | 1 | first_name | | 2 | last_name | | 3 | email |
ATTRIBUTE_VALUES
| uid | attr_id | value | |-------+-----------|-----------| | 1 | 1 | Hello | | 1 | 2 | world | |-------+-----------|-----------| | 2 | 1 | A | | 2 | 2 | B | | 2 | 3 | a@xzy.com |
即使表attribute_values中不存在属性,我也想编写一个查询来选择用户的属性。然后,我想得到null值的结果。
例如,用于选择用户ID 1
| name | value | |---------------|-----------| | first_name | Hello | | last_name | world | | email | NULL |
用户ID 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 |
有一个查询获得结果的最佳方法是上面的例子吗?
感谢。
答案 0 :(得分:2)
SELECT a.*, b.value
FROM attributes a
LEFT JOIN attribute_values b
ON a.ID = b.attr_id AND b.uid = 1