特定の部門 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

推薦する

太字の <b> と <strong> の違いの分析

私たちウェブマスターは皆、ウェブサイトを最適化する際に記事内のキーワードを太字にすることが最適化に非...

MySQLはパスワードなしでログインする例を実装しています

具体的な方法:ステップ1: mysqlサービスを停止する /etc/init.d/mysqld を停...

Vue組み込みコンポーネントのキープアライブの使用例

目次1. キープアライブの使用使用例: 1. すべてのページをキャッシュする: 2. 条件に基づいて...

auto.jsを使用して毎日の自動チェックイン機能を実現する

auto.js を使用して毎日のチェックインを自動化する感染症のせいで、毎日時間通りに家に帰らなけれ...

Zabbix 5.0 ディスク自動検出と読み取り/書き込み監視の問題を分析する

ディスクを自動的に検出する構成キーの値注: このキー値は Linux プラットフォームでのみサポート...

CSS3 で King of Glory マッチング人員読み込みページを実装する方法

King of Glory をプレイしたことがある人なら、このページの効果をよくご存知でしょう。なぜ...

ReactでuseStateを使用する詳細な例

使用状態useState は、関数コンポーネント内で呼び出すことで、コンポーネントに内部状態を追加し...

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

以下のように表示されます。名前説明する文字可変(n)、varchar(n)長さ制限あり、可変長文字(...

MySQLの通常インデックスとユニークインデックスの違いの詳しい説明

目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...

Webデザインチュートリアル(3):デザインの手順と考え方

<br />前のチュートリアル:Webデザインチュートリアル(2):模倣と盗作について。...

基本構造、ドキュメント タイプ、ヘッダー、本文などの一般的な HTML 要素の概要。

1. 基本構造:コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBL...

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

Apache、Tomcat、Nginx サーバーの詳細な理解と比較分析

質問1件会社のサーバーはApacheを使用しており、バックエンドはPHP、サーバーはLinux C/...