MySQL 自己結合の欠損データ
テーブルで自己結合を実行して、値を列ごとに表示したいと考えています。各オブジェクトには複数のプロパティ (既知の制限まで) がありますが、すべてのオブジェクトのすべてのプロパティが保存されるわけではありません。さまざまな結合を試しましたが、常に欠落行があり、NULL 値が必要です。
開始テーブル:
オブジェクトID |
属性 |
###価値###
|
1
###1つ###
10 |
|
1 |
b
20 |
|
1 |
c
30 |
|
2 |
###1つ###
15
|
2 |
c |
25
|
| 私の目標 (考えられる 3 つのプロパティが a,b,c | であると仮定して)
オブジェクトID
###1つ###
b
c
|
|
1 |
10 |
20
30
|
2 |
15 |
|
25
|
| 全員に返信(1)返信します
P粉5634465792024-04-01 09:26:44
次のクエリを使用してこれを実現できます:
リーリー
イラスト:
CASE
ステートメントを使用して、Attribute
の値を特定の値 (つまり、「a」、「b」など) として選択します。したがって、その特定の列では、その特定の属性の値のみが選択されます。
SUM を使用して、
Value フィールドの値を集計します。このようにして、
ObjectID の複数行の値が 1 つの行に集約されます。
数値以外の値を使用する可能性があるため
SUM を使用したくない場合は、@xQbert の提案に従い、次のように
MAX を使用できます。
リーリー
返事
0 キャンセル返事