当前位置:网站首页>MySQL auto - Connect Query recommended favorites
MySQL auto - Connect Query recommended favorites
2022-06-28 16:11:00 【Chef de station du programmeur de pile complète】
Bonjour tout le monde,On se revoit,Je suis ton ami, le chef de l'armée..
Requête auto - connectée
Scénario suivant:Un site de commerce électronique veut faire une classification hiérarchique des produits sur le site,Il y a plusieurs sous - classes sous une catégorie,Il y aura d'autres sous - classes sous la Sous - classe.Par exemple, les produits numériques ont des carnets sous cette catégorie,Ordinateurs de bureau,Smartphones, etc.;Notebook,Ordinateurs de bureau,Les smartphones peuvent également être classés par marque;Les marques peuvent également être classées par prix,Attendez un peu!.Peut - être que ces catégories atteindront un niveau très profond,Présente une structure arborescente.Comment ces données seront - elles représentées dans la base de données??Nous pouvons créer deux champs dans la base de données pour stockeridEt nom de la catégorie,Utilisez le troisième champ pour stocker un enfant ou un parent d'une catégorieid,Enfin, utilisez l'auto - connexion pour interroger les résultats souhaités.
Une requête auto - connectée est en fait équivalente à une requête connectée,Deux tableaux sont nécessaires,Juste sa montre de gauche.(Table des parents)Et la table de droite(Sous - Tableaux)Tout seul..Lors de la requête auto - connectée,Est de se connecter à soi - même,Prenez deux alias différents pour la table parent et la table enfant respectivement,Puis joindre les conditions de connexion.Voir l'exemple suivant:
1. Créer une table de données:
create table tdb_cates(
id smallint primary key auto_increment,
cate_name varchar(20) not null,
parent_id smallint not null
);Note::cate_nameNom représentant la classification,parent_idReprésente le parentid.
2. Insérer des données:
insert into tdb_cates(cate_name, parent_id) values('Produits numériques', 0);
insert into tdb_cates(cate_name, parent_id) values(' Produits ménagers ', 0);
insert into tdb_cates(cate_name, parent_id) values('Notebook', 1);
insert into tdb_cates(cate_name, parent_id) values('Smartphone', 1);
insert into tdb_cates(cate_name, parent_id) values('Appareils électriques', 2);
insert into tdb_cates(cate_name, parent_id) values('Mobilier', 2);
insert into tdb_cates(cate_name, parent_id) values('Réfrigérateur', 5);
insert into tdb_cates(cate_name, parent_id) values('Machine à laver', 5);
insert into tdb_cates(cate_name, parent_id) values('Marque automobile', 0);
insert into tdb_cates(cate_name, parent_id) values('Buick', 9);
insert into tdb_cates(cate_name, parent_id) values('BMW', 9);
insert into tdb_cates(cate_name, parent_id) values('Chevrolet', 9);
insert into tdb_cates(cate_name, parent_id) values('Textiles domestiques', 0);Résultats de la requête:
3. Interrogation de toutes les catégories et de leurs parents : Supposons qu'il y ait deux tables à gauche et à droite (Tous.tdb_cates), Le tableau de gauche est un sous - Tableau , Le tableau de droite est le tableau parent ; Pour interroger les sous - tables id,De la Sous - tablecate_name, Parent cate_name; Les conditions de connexion sont pour les sous - tableaux parent_id égal à id.
select s.id, s.cate_name, p.cate_name from tdb_cates s left join tdb_cates p on s.parent_id=p.id;Résultats de la requête:
4. Rechercher toutes les classifications et sous - classes de classification : Ou supposons qu'il y ait deux tables à gauche et à droite (Tous.tdb_cates), Le tableau de gauche est un sous - Tableau , Le tableau de droite est le tableau parent ; Pour interroger les sous - tables id,De la Sous - tablecate_name, Parent cate_name; Les conditions de connexion sont pour les sous - tableaux id égal à parent_id.
select s.id, s.cate_name, p.cate_name from tdb_cates s left join tdb_cates p on p.parent_id=s.id;Résultats de la requête:
Éditeur:Programmeur de pile complète,Veuillez indiquer la source de la réimpression.:https://javaforall.cn/132874.htmlLien vers le texte original:https://javaforall.cn
边栏推荐
- 请问下大家有遇到过这种设置的主健和数据库一致的错误吗?
- 如何查询数据库中一个表中的所有数据呢?
- OpenHarmony—内核对象事件之源码详解
- Change exchange (dynamic planning)
- Grand launch of qodana: your favorite CI code quality platform
- Analysis of PostgreSQL storage structure
- GAIN的代码实现(4)——基于GAN的Spam数据集缺失数据填补(序)【改进版】
- 有哪些好用的供应商管理系统
- 讲师征集令 | Apache DolphinScheduler Meetup分享嘉宾,期待你的议题和声音!
- REDIS00_详解redis.conf配置文件
猜你喜欢
![[high concurrency foundation] hidden dangers and solutions of MySQL concurrency under different transaction isolation levels](/img/35/63c9793ec7bc1c90c759504e84dc96.png)
[high concurrency foundation] hidden dangers and solutions of MySQL concurrency under different transaction isolation levels

The Web3.0 era is coming. See how Tianyi cloud storage resources invigorate the system to enable new infrastructure (Part 1)

Privacy computing fat - offline prediction

In depth learning foundation summary

物联网云融合安全指南

Xinchuang operating system -- kylin kylin desktop operating system (project 10 security center)

【MySQL】表连接为什么比子查询快

Visual Studio 2010 configuring and using qt5.6.3

A new 25K byte from the Department showed me what the ceiling is

5分钟的时间制作一个反弹球游戏
随机推荐
Knowing these commands allows you to master shell's own tools
成功迁移到云端需要采取的步骤
机器学习之卷积神经网络Lenet5训练模型
字节跳动数据平台技术揭秘:基于ClickHouse的复杂查询实现与优化
经典模型——Transformer
[proteus simulation] L297 driving stepping motor
See how the interface control devaxpress WinForms creates a virtual keyboard
Introduction to deep learning in machine learning
QT create 5.0.3 configuring qt4.8.7
软件测试员的悲哀竟是...自己的技术能力不能满足大厂要求?
FFmpeg之禁止输出banner log(三十)
Among US private server setup
Opengauss kernel: analysis of SQL parsing process
Lecturer solicitation order | Apache dolphin scheduler meetup sharing guests, looking forward to your topic and voice!
Summary of language features of fluent dart
机器学习之卷积神经网络使用cifar10数据集和alexnet网络模型训练分类模型,安装labelimg,以及报错ERROR
Do not use short circuit logic to write STL sorter multi condition comparison
What! One command to get the surveillance?
openGauss内核:SQL解析过程分析
部门新来了个字节25K出来的,让我见识到了什么是天花板