1

私は mysql を使用しています。問題は、'101' のようなグループ ID を持っていて、彼のアカウントの下にあるすべてのデバイス ID と、そのサブグループの下にある ID を取得したい場合です。たとえば、グループ ID が 101 の場合: device_id は 1. 44444 2. 33333 3. 55555 である必要があります

Table : Groups        --------------------------------------------------------------------------------------
    group_id          |      parent_id          |          group_name
    --------------------------------------------------------------------------------------
    101               |      null               |         matrix
    102               |      101                |         sub_matrix1
    103               |      101                |         sub_matrix2
    104               |      null               |         abc        
    105               |      104                |         sub_abc
    106               |      null               |         mega
    ---------------------------------------------------------------------------------------
    Table : Devices
         --------------------------------------------------------------------------------------
    device_id           |    group_id            |          device_name 
    --------------------------------------------------------------------------------------
    44444               |      101               |         m1
    33333               |      101               |         m1
    22222               |      102               |         m1
    55555               |      103               |         m1        
    88888               |      104               |         m1
    ---------------------------------------------------------------------------------------
4

1 に答える 1

1

mysqlの階層データに関する優れた記事は次のとおりです。http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

このようなものが機能する可能性があります。

SELECT t1.device_name
FROM devices AS t1
INNER JOIN groups AS t2 ON t2.group_id = t1.group_id
WHERE t1.group_id = '101' OR t2.parent_id = '101';
于 2012-07-31T07:10:59.773 に答える