全球快资讯:总结vue3 的一些知识点:MySQL 连接的使用
MySQL 连接的使用
在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。
本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。
(资料图)
你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
JOIN 按照功能大致分为如下三类:
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- **LEFT JOIN(左连接):**获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接):与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
本章节使用的数据库结构及数据下载:kxdang-mysql-join-test.sql。
在命令提示符中使用 INNER JOIN
我们在RUNOOB数据库中有两张表 tcount_tbl 和 kxdang_tbl。两张数据表数据如下:
实例
尝试以下实例:
测试实例数据
mysql> use RUNOOB;Database changedmysql> SELECT * FROM tcount_tbl;+---------------+--------------+| kxdang_author | kxdang_count |+---------------+--------------+| 菜鸟教程 | 10 || RUNOOB.COM | 20 || Google | 22 |+---------------+--------------+3 rows in set (0.01 sec) mysql> SELECT * from kxdang_tbl;+-----------+---------------+---------------+-----------------+| kxdang_id | kxdang_title | kxdang_author | submission_date |+-----------+---------------+---------------+-----------------+| 1 | 学习 PHP | 菜鸟教程 | 2017-04-12 || 2 | 学习 MySQL | 菜鸟教程 | 2017-04-12 || 3 | 学习 Java | RUNOOB.COM | 2015-05-01 || 4 | 学习 Python | RUNOOB.COM | 2016-03-06 || 5 | 学习 C | FK | 2017-04-05 |+-----------+---------------+---------------+-----------------+5 rows in set (0.01 sec)
接下来我们就使用MySQL的**INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)**来连接以上两张表来读取kxdang_tbl表中所有kxdang_author字段在tcount_tbl表对应的kxdang_count字段值:
INNER JOIN
mysql> SELECT a.kxdang_id, a.kxdang_author, b.kxdang_count FROM kxdang_tbl a INNER JOIN tcount_tbl b ON a.kxdang_author = b.kxdang_author;+-------------+-----------------+----------------+| a.kxdang_id | a.kxdang_author | b.kxdang_count |+-------------+-----------------+----------------+| 1 | 菜鸟教程 | 10 || 2 | 菜鸟教程 | 10 || 3 | RUNOOB.COM | 20 || 4 | RUNOOB.COM | 20 |+-------------+-----------------+----------------+4 rows in set (0.00 sec)
以上 SQL 语句等价于:
WHERE 子句
mysql> SELECT a.kxdang_id, a.kxdang_author, b.kxdang_count FROM kxdang_tbl a, tcount_tbl b WHERE a.kxdang_author = b.kxdang_author;+-------------+-----------------+----------------+| a.kxdang_id | a.kxdang_author | b.kxdang_count |+-------------+-----------------+----------------+| 1 | 菜鸟教程 | 10 || 2 | 菜鸟教程 | 10 || 3 | RUNOOB.COM | 20 || 4 | RUNOOB.COM | 20 |+-------------+-----------------+----------------+4 rows in set (0.01 sec)
MySQL LEFT JOIN
MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
实例
尝试以下实例,以kxdang_tbl为左表,tcount_tbl为右表,理解 MySQL LEFT JOIN 的应用:
LEFT JOIN
mysql> SELECT a.kxdang_id, a.kxdang_author, b.kxdang_count FROM kxdang_tbl a LEFT JOIN tcount_tbl b ON a.kxdang_author = b.kxdang_author;+-------------+-----------------+----------------+| a.kxdang_id | a.kxdang_author | b.kxdang_count |+-------------+-----------------+----------------+| 1 | 菜鸟教程 | 10 || 2 | 菜鸟教程 | 10 || 3 | RUNOOB.COM | 20 || 4 | RUNOOB.COM | 20 || 5 | FK | NULL |+-------------+-----------------+----------------+5 rows in set (0.01 sec)
以上实例中使用了 LEFT JOIN,该语句会读取左边的数据表 kxdang_tbl 的所有选取的字段数据,即便在右侧表 tcount_tbl中 没有对应的 kxdang_author 字段值。
MySQL RIGHT JOIN
MySQL RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据。
实例
尝试以下实例,以kxdang_tbl为左表,tcount_tbl为右表,理解MySQL RIGHT JOIN的应用:
RIGHT JOIN
mysql> SELECT a.kxdang_id, a.kxdang_author, b.kxdang_count FROM kxdang_tbl a RIGHT JOIN tcount_tbl b ON a.kxdang_author = b.kxdang_author;+-------------+-----------------+----------------+| a.kxdang_id | a.kxdang_author | b.kxdang_count |+-------------+-----------------+----------------+| 1 | 菜鸟教程 | 10 || 2 | 菜鸟教程 | 10 || 3 | RUNOOB.COM | 20 || 4 | RUNOOB.COM | 20 || NULL | NULL | 22 |+-------------+-----------------+----------------+5 rows in set (0.01 sec)
以上实例中使用了 RIGHT JOIN,该语句会读取右边的数据表 tcount_tbl 的所有选取的字段数据,即便在左侧表 kxdang_tbl 中没有对应的kxdang_author 字段值。
在 PHP 脚本中使用 JOIN
PHP 中使用 mysqli_query() 函数来执行 SQL 语句,你可以使用以上的相同的 SQL 语句作为 mysqli_query() 函数的参数。
尝试如下实例:
MySQL ORDER BY 测试:
菜鸟教程 MySQL JOIN 测试";echo "
教程 ID 作者 登陆次数 ";while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)){ echo " {$row["kxdang_id"]} ". "{$row["kxdang_author"]} ". "{$row["kxdang_count"]} ". " ";}echo "
";mysqli_close($conn);?>
关键词:
责任编辑:宋璟
-
全球快资讯:总结vue3 的一些知识点:MySQL 连接的使用
-
发力小型纯电SUV市场,沃尔沃EX30开启全球首秀_滚动
-
23福建债11票面利率为2.9100%
-
社区、医院、医保局接力救治耄耋老人_世界速读
-
世界球精选!王莽为何要杀光自己的儿子 其实原因很现实,你们想到了吗!
-
天天速讯:iOS 17 天气应用升级:新增昨日天气、下雨可能性预报及月球模块
-
衡中居然10点就能熄灯,简直不可思议啊-焦点消息
-
完善全品类布局 一汽奔腾加速冲锋头部阵营 全球球精选
-
温州国际育英学校(关于温州国际育英学校的基本详情介绍)_天天热点
-
【新要闻】屠光绍:上海自贸区促进全国高水平对外开放迈向新台阶
-
长春中考助学金活动咨询电话
-
2023海口引进人才住房补贴申请时间
-
美国社交电商再起波澜:TikTok商城开张,Meta却要闭门做生意 焦点快报
-
世界快消息!於可训教授真的在认真写小说,他的中篇小说集《鱼庐记》出版了
-
环球微头条丨消毒液配制及消毒方法_常用消毒液配制方法
-
品牌史上最小SUV 沃尔沃EX30全球首发亮相-实时
-
【播资讯】如何消除痘印最快方法_激光如何祛除痘印 激光消除痘印的方法有哪些
-
天天热推荐:B站副董事长兼COO李旎:AIGC技术将帮助专业创作者更好地发挥自身创意优势
-
全球热消息:佳嘉鸿:EMI导电屏蔽材料解决方案
-
白剑峰 审计_白剑 焦点精选
-
环球观天下!怎样帮助孩子走出自闭症?济南哪家医院可以治疗自闭症?
-
露营车等禁入!北京环球度假区6月15日起实行入园新规
-
世界观速讯丨易烊千玺被央视批评_易烊千玺tell me why
-
最新调查显示:我国消费者对食品添加剂仍有四大误解
-
环球今热点:揭晓持久续航手机热卖榜前8名,换机的看过来 #手机 #手机推荐 #手机推荐...
-
华中科技大学里的专科_华中科技大学的专科在哪 我看到高考天地上有的
-
【速看料】个人特点及特长500字(个人特点及特长)
-
涨停雷达:人工智能个股异动 新华网触及涨停
-
中新天津生态城税务局深入辖区葡萄种植企业问需求解难题
-
到“十四五”末,山东全省将培育建设工匠不少于1万名-天天观热点
-
北京客运汽车票网上订票(北京客运站网上订票官网)
-
天天播报:优博讯:公司目前暂未使用MLOps进行开发
-
第三届中国智能汽车创新大会在深举行 世界即时看
-
苏州相城一企业获批国家博士后科研工作站-实时
-
天天即时看!2023年河南宝丰县“文化和自然遗产日”系列活动启动