1

你能帮我解决这个问题吗?

我有2个表如下:

属性

| 编号 | 姓名 |
|----+--------------|
| 1 | 名字 |
| 2 | 姓氏 |
| 3 | 电子邮件 |

属性值

| uid | attr_id | 价值 |
|-------+-----------|------------|
| 1 | 1 | 你好 |
| 1 | 2 | 世界|
|-------+-----------|------------|
| 2 | 1 | 一个 |   
| 2 | 2 | 乙|
| 2 | 3 | a@xzy.com |

即使表attribute_values中不存在属性,我也想编写一个查询来选择用户的属性。然后,我想得到空值的结果。

例如选择用户 id 1

| 姓名 | 价值 |
|---------------|------------|
| 名字 | 你好 |
| 姓氏 | 世界|
| 电子邮件 | 空 |

用户 ID 2

| 姓名 | 价值 |
|---------------|------------|
| 名字 | 一个 |
| 姓氏 | 乙|
| 电子邮件 | a@xzy.com |

用户 ID 3 (attribute_values 中不存在)

| 姓名 | 价值 |
|---------------|------------|
| 名字 | 空 |
| 姓氏 | 空 |
| 电子邮件 | 空 |

是否有一个查询的最佳方法来获得上述 3 个示例的结果?

谢谢。

4

1 回答 1

2
SELECT  a.*, b.value
FROM    attributes a
        LEFT JOIN attribute_values b
            ON a.ID = b.attr_id AND b.uid = 1
于 2013-01-30T09:42:42.227 回答