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 回答