特定の部門 ID に基づいて、すべての下位レベルの複数レベルのサブ部門を照会する MySQL の例

特定の部門 ID に基づいて、すべての下位レベルの複数レベルのサブ部門を照会する MySQL の例

シミュレーションテーブルとデータスクリプト

次の SQL ステートメントをコピーして、sys_dept というテーブルを生成し、階層データを挿入します。コピーして実行するだけです。

`sys_dept` が存在する場合はテーブルを削除します。
テーブル `sys_dept` を作成します (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部門番号',
 `p_id` int(11) DEFAULT NULL COMMENT '親部門番号',
 `title` varchar(255) DEFAULT NULL COMMENT '親部門名',
 `is_open` int(11) DEFAULT NULL COMMENT '展開するかどうか(0-展開、1-展開しない)',
 `address` varchar(255) DEFAULT NULL COMMENT '部署住所',
 `create_time` datetime DEFAULT NULL COMMENT '作成時刻',
 `remark` varchar(255) デフォルト NULL コメント '備考',
 BTREE を使用した主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8;


sys_dept (p_id、title、is_open、address、create_time、remark) の値に挿入します。 
(0,'ゼネラルマネージャーオフィス',1,'深圳','2019-04-10 14:06:32.000','ビッグボス')
,(1,'営業部',0,'武漢','2019-04-10 14:06:32.000','プログラマーの敗者')
,(1,'作戦部',0,'武漢','2019-04-10 14:06:32.000','なし')
,(1,'生産部',0,'武漢','2019-04-10 14:06:32.000','なし')
,(2,'営業部1',0,'武漢','2019-04-10 14:06:32.000','営業部1')
,(2,'営業部2',0,'武漢','2019-04-10 14:06:32.000','営業部2')
,(2,'営業部3',0,'広州','2019-04-10 14:06:32.000','営業部3')
,(2,'営業部4',0,'広州','2019-04-10 14:06:32.000','営業部4')
,(2,'営業部5',0,'広州','2019-04-10 14:06:32.000','営業部5')
,(3,'作戦部1',0,'武漢','2019-04-10 14:06:32.000','作戦部1')
,(3,'作戦部2',0,'武漢','2019-04-10 14:06:32.000','作戦部2')
,(3,'作戦部3',0,'武漢','2019-04-10 14:06:32.000','作戦部3')
,(3,'作戦部4',0,'武漢','2019-04-10 14:06:32.000','作戦部4')
,(3,'作戦部5',0,'武漢','2019-04-10 14:06:32.000','作戦部5')
,(4,'生産部1',1,'深圳','2019-11-23 09:50:23.000','生産部1')
,(4,'製造部2',1,'深圳','2019-11-23 09:50:23.000','製造部2')
,(4,'生産部3',1,'深圳','2019-11-23 09:50:23.000','生産部3')
,(5,'1グループの売上',1,'深圳','2019-11-23 09:50:23.000','1グループの売上')
,(5,'営業部1、グループ2',1,'深圳','2019-11-23 09:50:23.000','営業部1、グループ2')
,(5,'ユニット1と3の販売',1,'深圳','2019-11-23 09:50:23.000','ユニット1と3の販売')
,(6,'営業部2グループ1',1,'深圳','2019-11-23 09:50:23.000','営業部2グループ1')
,(6,'営業部2グループ2',1,'深圳','2019-11-23 09:50:23.000','営業部2グループ2')
,(17,'製造部3グループ1',1,'深圳','2019-11-23 09:50:23.000','製造部3グループ1')
,(17,'製造部3グループ2',1,'深圳','2019-11-23 09:50:23.000','製造部3グループ2')
,(17,'製造部3グループ3',1,'深圳','2019-11-23 09:50:23.000','製造部3グループ3')
;

部門IDですべてのサブ部門を照会する

選択
 ID、タイトル
から
 (
 選択
 t1.id、t1.タイトル、
 find_in_set(p_id, @pids) > 0 の場合、
 @pids := concat(@pids, ',', id),
 0) ischildとして
 から
 (
 選択
  id、
  、
  タイトル
 から
  ssmdemo.sys_dept t
 並び替え
  、
  id ) t1、
 (
  @pids := 17) t2 ) t3 を選択する
どこ
 ischild != 0

@pids := 17 では、17 は照会される部門 ID です。

これで、特定の部門 ID に基づいて、すべての下位レベルのマルチレイヤーサブ部門を MySQL がクエリする例に関するこの記事は終了です。より関連性の高い MySQL ID クエリのすべての下位レベルのマルチレイヤーサブ部門コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。

以下もご興味があるかもしれません:
  • Mysql 主キー UUID と自動増分主キーの違いと利点と欠点
  • MySQLの不合理なMaxIdleConnsにより接続が短くなる
  • MySQLでデータを挿入した後に自動増分IDを返す7つの方法の詳細な説明
  • IDEA を使用して Tomcat を設定し、MySQL データベース (JDBC) に接続するための詳細な手順
  • MYSQL データベース GTID はマスタースレーブレプリケーションを実現します (超便利)
  • MySQL の自動増分 ID (主キー) が不足した場合の解決策
  • JDBC-idea で mysql をインポートして java jar パッケージに接続する (mac)
  • MySQL が uuid または snowflake id を主キーとして使用することを推奨しない理由の詳細な分析
  • MySQL は ACID トランザクションをどのように実装しますか?
  • IDEA が MySQL に接続する際の問題と解決策
  • MySQLはIDに適切なデータ型を選択します

<<:  HTMLテーブルタグの詳しい解説(初心者向け)

>>:  クリックイメージ反転効果を実現するJavaScript

推薦する

HTML 画像 img タグ_Powernode Java アカデミー

まとめプロジェクトの説明形式<img src="..."> H2+ ...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

CSS3 画像の境界線を学ぶのに役立つ記事

CSS3 border-image プロパティを使用すると、要素の周囲に画像の境界線を設定できます。...

JavaScript ECharts の使用方法の説明

以前、プロジェクトを行う際に ECharts を使用しました。今日はそれをメモとして整理し、より多く...

Linux ディスクのマウント、パーティション分割、容量拡張操作を実装する方法

基本概念操作の前に、まずいくつかの基本的な概念を理解する必要がありますディスクLinux システムで...

Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)

最近、Web 開発のフロントエンドとバックエンドの技術を学んだので、その後の管理を容易にするためにプ...

Vueプロジェクトでコンポーネントをカプセル化する簡単な手順

目次序文Toastコンポーネントをカプセル化する方法ユースケース具体的な実装要約する序文ビジネスが発...

MySQL 5.7 MGR シングルマスター決定マスターノード方式の詳細説明

当銀行のMGRは年末に開始されます。公式文書を読んだり、毎日テストを受けたりしなければなりません。毎...

@font-face を使用して Web ページに特殊文字を実装する (カスタム フォントを作成する)

数日前、CSS を使用して三角形の矢印を実装する方法について記事を書きました。 目的の効果は達成され...

Vueはフィルターを使用して日付をフォーマットします

この記事では、フィルターを使用して日付をフォーマットするVueの具体的なコードを参考までに紹介します...

URLエスケープエンコーディングの特殊文字に基づいて

目次URL 内の特殊文字URL 特殊文字エスケープ、URL 内の一部の文字には特別な意味があり、基本...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

MySQL 8.0.15 インストール グラフィック チュートリアルとデータベースの基礎

MySQLソフトウェアのインストールとデータベースの基礎は参考用です。具体的な内容は次のとおりです。...

Vue の computed と watch の違いを理解する方法

目次概要計算された監視プロパティを監視する要約する概要Vue プロジェクトでは、computed と...

CentOS 7.4 にソースコードから MySQL 8.0 をインストールするための詳細なチュートリアル

目次1. 環境2. 準備3. MySQL 8.0.11をインストールするMySQL 8 の公式バージ...