当前位置:网站首页>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
边栏推荐
- 有哪些好用的供应商管理系统
- QT create 5.0.3 configuring qt4.8.7
- The Web3.0 era is coming. See how Tianyi cloud storage resources invigorate the system to enable new infrastructure (Part 1)
- Knowing these commands allows you to master shell's own tools
- [Spock] process non ASCII characters in an identifier
- 经典模型——Transformer
- What! One command to get the surveillance?
- 扎克伯格致投资者:不要对元宇宙有任何期待
- leetcode:22. bracket-generating
- 【初学者必看】vlc实现的rtsp服务器及转储H264文件
猜你喜欢

Web3.0时代来了,看天翼云存储资源盘活系统如何赋能新基建(上)

平台即代码的未来是Kubernetes扩展
![[Spock] process non ASCII characters in an identifier](/img/ab/d2cd6802d1e2af009da077ae82bdf8.png)
[Spock] process non ASCII characters in an identifier

Analysis of PostgreSQL storage structure

Classic model transformer

【MySQL】官网文档学习之查询语句sql注意事项

IPDK — Overview

Big God explains open source buff gain strategy live lecture

软件测试员的悲哀竟是...自己的技术能力不能满足大厂要求?

The sadness of software testers is Their own technical ability can not meet the requirements of large manufacturers?
随机推荐
成功迁移到云端需要采取的步骤
What is the maximum number of concurrent TCP connections for a server? 65535?
Why MySQL table connection is faster than subquery
Soliciting articles and contributions - building a blog environment with a lightweight application server
如何查询数据库中一个表中的所有数据呢?
Change exchange (dynamic planning)
一台服务器最大并发 tcp 连接数多少?65535?
国债与定期存款哪个更安全 两者之间有何区别
Today's sleep quality record is 80 points
全球陆续拥抱Web3.0,多国已明确开始抢占先机
Qt 界面库
Knowing these commands allows you to master shell's own tools
Flutter simply implements multilingual internationalization
Application of mongodb in Tencent retail premium code
Android, eclipse and MySQL upload pictures and get
部门新来了个字节25K出来的,让我见识到了什么是天花板
tablestore中可以使用sql查询可以查出表中所有的数据吗?
Opengauss kernel: analysis of SQL parsing process
元宇宙中能接吻了!CMU推出VR头显外挂,复刻唇部逼真触觉
Practice of curve replacing CEPH in Netease cloud music