【PHP MySQL】数据库专题 第九课 自连接
【PHP & MySQL】✔️数据库专题✔️ 第九课 自连接
- 概述
- 自连接
- 子查询 in
- 子查询 EXISTS
概述
从今天开始, 小白我将带领大家一起来补充一下 数据库的知识.
自连接
自连接 (Self Join) 是一种特殊的表连接. 自连接指相互连接的表在物理上同为一张表, 但是逻辑上是多张表. 自连接通常用于表中的数据有层次结构, 如区域表, 菜单表, 商品分类表等.
格式:
SELECT A.列名, B.列名 FROM 表A, 表B WHERE A.列名 = B.列名
数据:
例子: (过滤城市)
<?php$conn = mysqli_connect("localhost", "root","admin","study");if ($conn) {echo "数据库链接成功\n";
} else {echo mysqli_connect_error();
}# SQL语句
$SQL = "SELECT * FROM location WHERE pid <> 0";# 执行
$result = mysqli_query($conn, $SQL);# 查看是否执行成功
if ($result) {echo "SQL 语句执行成功!\n";
}else {echo mysqli_error($conn);
}# 调试输出
while ($line = mysqli_fetch_assoc($result)) {print_r($line);
}# 关闭连接
mysqli_close($conn);?>
输出结果:
数据库链接成功
SQL 语句执行成功!
Array
([id] => 2[pid] => 1[location] => 杭州
)
Array
([id] => 3[pid] => 1[location] => 萧山
)
Array
([id] => 5[pid] => 2[location] => 广州
)
Array
([id] => 6[pid] => 2[location] => 台山
)
子查询 in
子查询又称为内部查询或嵌套查询. 它允许我们在 WHERE 子句中过滤某个字段的多个值.
格式:
SELECT 列名 FROM 表名
WHERE 列名 IN ( SELECT 列名 FROM 表名 [条件])
数据 (table1):
数据 (table2):
例子:
<?php$conn = mysqli_connect("localhost", "root","admin","study");if ($conn) {echo "数据库链接成功\n";
} else {echo mysqli_connect_error();
}# SQL语句
$SQL = "SELECT table1.* FROM table1WHERE table1.name in (SELECT table2.name FROM table2)";# 执行
$result = mysqli_query($conn, $SQL);# 查看是否执行成功
if ($result) {echo "SQL 语句执行成功!\n";
}else {echo mysqli_error($conn);
}# 调试输出
while ($line = mysqli_fetch_assoc($result)) {print_r($line);
}# 关闭连接
mysqli_close($conn);?>
输出结果:
数据库链接成功
SQL 语句执行成功!
Array
([id] => 1[name] => 杨富贵[age] => 18
)
Array
([id] => 2[name] => 杨美丽[age] => 19
)
Array
([id] => 3[name] => 杨建国[age] => 20
)
子查询 EXISTS
EXISTS 是子查询中用于测试内部查询是否返回任何行的布尔运算符.
格式:
SELECT 列名 FROM 表名
WHERE EXISTS
例子:
<?php$conn = mysqli_connect("localhost", "root","admin","study");if ($conn) {echo "数据库链接成功\n";
} else {echo mysqli_connect_error();
}# SQL语句
$SQL = "SELECT table1.* FROM table1WHERE EXISTS (SELECT table2.name FROM table2 WHERE table1.name = table2.name)";# 执行
$result = mysqli_query($conn, $SQL);# 查看是否执行成功
if ($result) {echo "SQL 语句执行成功!\n";
}else {echo mysqli_error($conn);
}# 调试输出
while ($line = mysqli_fetch_assoc($result)) {print_r($line);
}# 关闭连接
mysqli_close($conn);?>
输出结果:
数据库链接成功
SQL 语句执行成功!
Array
([id] => 1[name] => 杨富贵[age] => 18
)
Array
([id] => 2[name] => 杨美丽[age] => 19
)
Array
([id] => 3[name] => 杨建国[age] => 20
)
【PHP MySQL】数据库专题 第九课 自连接相关推荐
- 【PHP MySQL】数据库专题 第二课 创建数据库 表
[PHP & MySQL]✔️数据库专题✔️ 第二课 创建数据库 & 表 概述 MySQL 安装 MySQL 命令行 数据库创建 创建表 概述 从今天开始, 小白我将带领大家一起来补充 ...
- 打造扛得住的MySQL数据库架构-第一课--影响数据库性能的因素
连接数,并发量 500 服务器连接错误 磁盘IO: 网卡流量: 1000MB 什么的表才叫大表??? 超过千万行,10G 大表的影响: 大表对DDL操作的影响 修改表的结构需要长时间锁表 5.5和版本 ...
- 学习笔记(05):Mysql数据库基础入门视频教程-自连接
立即学习:https://edu.csdn.net/course/play/9885/210119?utm_source=blogtoedu -- 子查询 -- 一个select语句包含另一个 ...
- 【PHP MySQL】数据库专题 第八课 表连接
[PHP & MySQL]✔️数据库专题✔️ 第八课 表连接 概述 表连接 内连接 左连接 右连接 全连接 概述 从今天开始, 小白我将带领大家一起来补充一下 数据库的知识. 表连接 表连接 ...
- 高并发大流量专题---10、MySQL数据库层的优化
高并发大流量专题---10.MySQL数据库层的优化 一.总结 一句话总结: mysql先考虑做分布式缓存,过了缓存后就做mysql数据库层面的优化 1.mysql数据库层的优化的前面一层是什么? 数 ...
- eclipse连接mysql_专题一、flask构建mysql数据库正确姿势
每周壹总结,一起共同充电第121篇 应用程序最核心的就是数据,每天我们写程序其实也是在处理数据的过程,那么很有必要系统性的讲讲和梳理python的flask框架是如何进行数据交互操作的. 趁这3天假期 ...
- QT五子棋游戏课设及源码(连接mysql数据库含打开并运行程序的教程)
gdut大一下学期c++课设(得分:95) 实验报告及源码压缩包百度云下载: 链接:https://pan.baidu.com/s/1zO5ofMz09fiWihxCcZcFbg 提取码:ddav 首 ...
- 计算机毕业设计Java高校排课管理系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java高校排课管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java高校排课管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 ...
- Java系列技术之MySql数据库-钟洪发-专题视频课程
Java系列技术之MySql数据库-66人已学习 课程介绍 在Java系列的技术体系中,数据库是必不可少的核心知识,任何稍稍复杂一点的应用系统,都不可能少的了数据库的支持,将MySQL ...
最新文章
- 闪灯什么意思_开车碰见别人闪灯知道是什么意思吗?看不懂不要说自己会开车哦...
- ppct各代表什么_半导体50指数_股票大盘分时图中白线和黄线各代表什么?
- Glide-Android下高效加载多媒体文件
- K-means均值聚类算法的原理与实现
- 用 Java 语言,写一个植物大战僵尸简易版!
- 【“零起点”--百度地图手机SDK】如何创建一张地图
- zabbix使用ICMP ping监控网络状态
- ASO优化的盲点:Apple ID权重必须考量
- IT行业,一年最痛苦的事莫过于没有年终奖
- 07169软件开发工具与环境考试大纲
- 计算机的四屏故障维修,计算机应用之显卡故障维修技巧
- php中的where用法,ThinkPHP中where()使用方法详解
- ABP框架系列之三十:(Javascript-API-Javascript-API)
- 服务器上搭建git仓库
- Autonomous automobile trajectory tracking for off-road driving翻译学习
- LLD-LLVM链接器
- 闭关修炼(一)多线程
- 全国计算机一级a还是b,计算机一级证和一级B证的区别是什么
- 【智能家居市场】华为hilink
- 重庆大学计算机学院新生综合,重庆大学
热门文章
- 软件架构设计---架构设计
- halcon中怎么降低图像亮度_图像亮度调整
- 重装系统之linux的ubuntu系统(服务器版)
- git安装及使用教程
- 侯捷C++八部曲笔记(四、C++2.0新特性)
- redis集群模式登陆
- 解决互斥锁lock,报tpp.c:63: __pthread_tpp_change_priority: Assertion异常
- ai不同形状的拼版插件_Illustrator(AI)自动拼版脚本 V1.5下载(编组对象的复制位移)...
- 2021亚太杯A|B|C题全网最全解题思路+数据分享
- 铁威马NAS媒体索引设置教程