как найти всех дочерних с идентификатором и родительской структурой идентификатора - PullRequest
0 голосов
/ 24 мая 2018

мои табальные данные:

  -- ----------------------------
  -- Table structure for abr_cat
  -- ----------------------------
CREATE TABLE `abr_cat` (
 `ID` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(100) NOT NULL,
 `ParentID` int(11) NOT NULL, 
 `status` int(11) NOT NULL DEFAULT '1',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of abr_cat
-- ----------------------------
INSERT INTO `abr_cat` VALUES ('22', 'cat 1', '0', '1');
INSERT INTO `abr_cat` VALUES ('23', 'sub cat 1-1', '22', '1');
INSERT INTO `abr_cat` VALUES ('24', 'sub cat 1-2', '22', '1');
INSERT INTO `abr_cat` VALUES ('25', 'sub cat 1-1-1', '23', '1');
INSERT INTO `abr_cat` VALUES ('26', 'cat 2', '0', '1');
INSERT INTO `abr_cat` VALUES ('27', 'sub cat 2-1', '26', '1');
INSERT INTO `abr_cat` VALUES ('28', 'sub cat 1-1-1-1', '25',  '1');
INSERT INTO `abr_cat` VALUES ('29', 'sub cat 1-1-1-1-1', '28', '1');
INSERT INTO `abr_cat` VALUES ('30', 'cat 3', '0', '1');

например, я хочу найти все дочерние элементы ID = 22 и эти выходные данные:

[
    {
        "ID": 23,
        "title": "sub cat 1-1",
        "ParentID": 22,
        "status": 1
    },
    {
        "ID": 24,
        "title": "sub cat 1-2",
        "ParentID": 22,
        "status": 1
    },
    {
        "ID": 25,
        "title": "sub cat 1-1-1",
        "ParentID": 23,
        "status": 1
    },
    {
        "ID": 28,
        "title": "sub cat 1-1-1-1",
        "ParentID": 25,
        "status": 1
    },
    {
        "ID": 29,
        "title": "sub cat 1-1-1-1-1",
        "ParentID": 28,
        "status": 1
    }
]

1 Ответ

0 голосов
/ 24 мая 2018

Попробуйте этот запрос и присоединение будет полезно:

   SELECT a.title FROM
   `abr_cat`  as a left join `abr_cat` as b 
    on b.`ParentID` = a.`ID` where a.`ParentID` =22

Снимок экрана: http://prntscr.com/jm06li

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...