1

この問題を解決するのを手伝ってもらえますか?

私は以下のように2つのテーブルを持っています:

属性

| id | 名前|
| ---- + -------------- |
| 1 | first_name |
| 2 | last_name |
| 3 | メール|

attribute_values

| uid | attr_id | 値|
| ------- + ----------- | ----------- |
| 1 | 1 | こんにちは|
| 1 | 2 | 世界|
| ------- + ----------- | ----------- |
| 2 | 1 | A |   
| 2 | 2 | B |
| 2 | 3 | a@xzy.com |

テーブルattribute_valuesに属性が存在しない場合でも、ユーザーの属性を選択するクエリを作成したいと思います。次に、null値で結果を取得したいと思います。

たとえば、ユーザーID1を選択する場合

| 名前| 値|
| --------------- | ----------- |
| first_name | こんにちは|
| last_name | 世界|
| メール| NULL |

ユーザーID2

| 名前| 値|
| --------------- | ----------- |
| first_name | A |
| last_name | B |
| メール| a@xzy.com |

ユーザーID3 (attribute_valuesには存在しません)

| 名前| 値|
| --------------- | ----------- |
| first_name | NULL |
| last_name | NULL |
| メール| NULL |

上記の3つの例のように1つのクエリで結果を取得する最良の方法はありますか?

ありがとう。

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 に答える