2 つtable
の があります。1 つは でmaster
、もう 1 つはdetail
( 外部キー ) です。master
テーブルにはhierarchy
構造があります。master
各行にはparent
階層があります (自己外部キー)。おそらく、テーブルの DML で明確に説明できます。
CREATE TABLE classe_menu (
class_menu_code int(10) NOT NULL auto_increment,
class_menu_lib varchar(50) default NULL,
class_menu_comment text,
class_menu_deleted tinyint(1) default '0',
class_menu_ordre int(11) default NULL,
class_menu_parent int(10) default NULL,
PRIMARY KEY (class_menu_code) ,
KEY association_108_fk (class_menu_parent),
CONSTRAINT fk_association_108 FOREIGN KEY (class_menu_parent) REFERENCES classe_menu (class_menu_code)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE menu (
menu_code int(10) NOT NULL auto_increment,
class_menu_code int(10) default NULL,
menu_lib varchar(100) default NULL,
menu_url varchar(255) default NULL,
menu_titre varchar(100) default NULL,
menu_parent decimal(10,0) default NULL,
menu_visible tinyint(1) default NULL,
menu_ordre decimal(2,0) default NULL,
menu_action varchar(50) default NULL,
menu_icone_img varchar(255) default NULL,
menu_icone_flag tinyint(1) default '0',
menu_icone_title varchar(50) default NULL,
menu_deleted tinyint(1) default '0',
menu_tooltip varchar(25) default NULL,
menu_trace text,
menu_image varchar(255) default NULL,
menu_contextuel tinyint(1) default '0',
menu_logo varchar(255) default NULL,
menu_display int(1) default '0',
PRIMARY KEY (menu_code),
KEY association_109_fk (class_menu_code),
CONSTRAINT fk_association_109 FOREIGN KEY (class_menu_code) REFERENCES classe_menu (class_menu_code)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='liste des menus du site'
ご覧のとおり、「classe_menu」はmaster
テーブルで、「menu」はdetail
テーブルです。しかし、マスター テーブル 'classe_menu' 内にはhierarchy
、'class_menu_parent' 列によって実装される構造もあります。'classe_menu' 行は、root
そのhierarchy
'class_menu_parent' がNULL
.
今私が欲しいのは、すべての 'classe_menu'ルート行とすべての 'classe_menu' の 'menu' 行、つまりすべてのルート 'classe_menu' とそのすべてのchildren
.
どうやってするか ?