SQLでGrandparent-Parent-Child列を持つテーブルを結合する方法

匿名:

2つのテーブルがhierarchyあり、itemそれらを結合したい:

hierarchy
|------------------|------------------|-------------|--------------|------------|--------------|
|  grandparent_id  | grandparent_name |  parent_id  | parent_name  |  child_id  |  child_name  |
|------------------|------------------|-------------|--------------|------------|--------------|
|        100       |       Make       |     101     |     Model    |     102    |      CPU     |
|------------------|------------------|-------------|--------------|------------|--------------|

item
|-----------|-------------|
|  item_id  |  item_name  |
|-----------|-------------|
|    100    |     Dell    |
|    101    |     XPS     |
|    102    |   i5-9300H  |
|-----------|-------------|

望ましい出力:

|-----------|-------------|-------------|
|  item_id  |  item_name  |  hierarchy  |
|-----------|-------------|-------------|
|    100    |     Dell    |     Make    |
|    101    |     XPS     |     Model   |
|    102    |   i5-9300H  |     CPU     |
|-----------|-------------|-------------|

このクエリを実行する最も効率的な方法は何ですか?

GMB:

階層の列のピボットを解除してから結合できます。

select i.item_id, i.item_name, h.model
from item i
inner join (
    select grand_parent_id item_id, grand_parent_name model from hierarchy
    union all select parent_id, parent_name from hierarchy
    union all select child_id, child_name from hierarchy
) h on h.item_id = i.item_id

階層に不足しているアイテムがある場合は、のleft join代わりに使用できますinner join

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLで複数の条件を持つテーブルを結合する方法は?

分類Dev

SQLで複数の共通列を持つ2つのテーブルを1つに結合する

分類Dev

異なる列を持つ2つのテーブルのSQL結合

分類Dev

Mysqlが1つのIDのみをフェッチする複数の列を持つ3つのテーブルでクエリを結合する方法

分類Dev

私のSQLで複数の列を持つ3つのテーブルのクエリを結合する方法は?

分類Dev

SQLは、異なる列を持つ2つのテーブルを結合します

分類Dev

sql-複数のテーブルの結合から1つの異なる列のみを持つ複数の列を選択する方法

分類Dev

複数の共通列を持つSQL結合テーブル

分類Dev

SQL同じ列を持つテーブルを結合し、結合のような統計を使用するにはどうすればよいですか?

分類Dev

SQL:100万以上のレコードを持つテーブルを結合する方法

分類Dev

SQLを3つのテーブルと結合する方法

分類Dev

2つの列でテーブルを結合する

分類Dev

Railsで1:Nテーブルを結合し、レコードの複数の行の代わりに、結合されたテーブルからIDの配列を含む追加の列を持つ1つの行を取得する方法

分類Dev

Hbaseで2つのテーブルを結合する方法

分類Dev

SQLiteで3つのテーブルを結合する方法は?

分類Dev

3つのテーブルをlinqで結合する方法

分類Dev

ROOMで3つのテーブルを結合する方法

分類Dev

Oracleで2つのテーブルを結合する方法

分類Dev

MSAccessで3つのテーブルを結合する方法

分類Dev

SQLServerで3つのテーブルを結合する方法

分類Dev

PHPで2つのmysqlテーブルを結合する方法

分類Dev

3つのテーブルにわたる列の合計を持つビューのSQL結合クエリ

分類Dev

3つのテーブルを結合するSQL結合

分類Dev

SQL-2つのテーブルを同じ列で結合して水平にスタックする方法

分類Dev

SQLで列が一致しない2つのテーブルを結合する方法

分類Dev

SQLでこれらの3つのテーブルを結合する方法は?

分類Dev

SQL: 2 つのテーブルを日付範囲で結合する方法

分類Dev

4つのテーブルを持つ複雑なSQLで正しいSQL結果を取得する方法

分類Dev

2つのテーブルをSQLで結合する

Related 関連記事

  1. 1

    SQLで複数の条件を持つテーブルを結合する方法は?

  2. 2

    SQLで複数の共通列を持つ2つのテーブルを1つに結合する

  3. 3

    異なる列を持つ2つのテーブルのSQL結合

  4. 4

    Mysqlが1つのIDのみをフェッチする複数の列を持つ3つのテーブルでクエリを結合する方法

  5. 5

    私のSQLで複数の列を持つ3つのテーブルのクエリを結合する方法は?

  6. 6

    SQLは、異なる列を持つ2つのテーブルを結合します

  7. 7

    sql-複数のテーブルの結合から1つの異なる列のみを持つ複数の列を選択する方法

  8. 8

    複数の共通列を持つSQL結合テーブル

  9. 9

    SQL同じ列を持つテーブルを結合し、結合のような統計を使用するにはどうすればよいですか?

  10. 10

    SQL:100万以上のレコードを持つテーブルを結合する方法

  11. 11

    SQLを3つのテーブルと結合する方法

  12. 12

    2つの列でテーブルを結合する

  13. 13

    Railsで1:Nテーブルを結合し、レコードの複数の行の代わりに、結合されたテーブルからIDの配列を含む追加の列を持つ1つの行を取得する方法

  14. 14

    Hbaseで2つのテーブルを結合する方法

  15. 15

    SQLiteで3つのテーブルを結合する方法は?

  16. 16

    3つのテーブルをlinqで結合する方法

  17. 17

    ROOMで3つのテーブルを結合する方法

  18. 18

    Oracleで2つのテーブルを結合する方法

  19. 19

    MSAccessで3つのテーブルを結合する方法

  20. 20

    SQLServerで3つのテーブルを結合する方法

  21. 21

    PHPで2つのmysqlテーブルを結合する方法

  22. 22

    3つのテーブルにわたる列の合計を持つビューのSQL結合クエリ

  23. 23

    3つのテーブルを結合するSQL結合

  24. 24

    SQL-2つのテーブルを同じ列で結合して水平にスタックする方法

  25. 25

    SQLで列が一致しない2つのテーブルを結合する方法

  26. 26

    SQLでこれらの3つのテーブルを結合する方法は?

  27. 27

    SQL: 2 つのテーブルを日付範囲で結合する方法

  28. 28

    4つのテーブルを持つ複雑なSQLで正しいSQL結果を取得する方法

  29. 29

    2つのテーブルをSQLで結合する

ホットタグ

アーカイブ