mysql连接查询:3个数据表操作研究
首先,新建数据表aaa、bbb以及他们相关联的数据表avb;字段名如下图

填充点数据,如下:


上面设计表的时候,故意在两个表中有相同字段con,如果不做处理的话,在php程序中,看看什么情况?得到的结果集中的con是aaa表的,还是avb表的?
$sql = "SELECT * FROM aaa LEFT JOIN avb ON aaa.a_id = avb.a_id";
$db->query($sql);
$result_list = $db->get_all();
echo '<pre>';
print_r($result_list);

如果将aaa LEFT JOIN avb 改为 avb RIGHT JOIN aaa呢?
答曰:1.理论上结果集是一样的 2.但是php中对相同项的内容,取的是后表中的。

总结一下:
a left join b , a的记录全保留,b往a填内容,相同字段记录留b的(left join左为主,相同字段留后表的)
a right join b, b的记录全保留,a往b填内容,相同字段记录留b的(right join右为主,相同字段留后表的)
第2大问题,3个表如何连接查询?取出对应的数据?
答曰:上面左连接、右连接搞明白得到的结果集后,三个表就是2个表连接后的结果集再和第三个表连接。写法上如下
SELECT * FROM aaa INNER JOIN avb ON aaa.a_id = avb.a_id INNER JOIN bbb ON avb.b_id = bbb.b_id
上面的语句用where子句也可以
SELECT * FROM aaa, bbb, avb WHERE aaa.a_id = avb.a_id AND bbb.b_id = avb.b_id
再看一遍


如果是在PHP中得到的结果集是:

mysql连接查询:3个数据表操作研究的更多相关文章
- 掌握MySQL连接查询到底什么是驱动表
		准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表, 创建表的SQL语句如下 CREATE TABLE `student` ( `id` int(11) NOT NUL ... 
- MySQL连接查询驱动表被驱动表以及性能优化
		准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表, 创建表的SQL语句如下 CREATE TABLE `student` ( `id` int(11) NOT NUL ... 
- 【mysql元数据库】使用information_schema.tables查询数据库和数据表信息
		概述 对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没 ... 
- (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计
		转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ... 
- mysql连接查询经典小例题
		mysql连接查询: Mysql连接查询支持多表连接 对同一张表可以重复连接多次(别名在多次连接同一张表时很重要) 例题1: 下面有2张表 teams表 比赛结果表:result 问题: 得出一张表: ... 
- MySQL连接查询(inner join,left join和right join的区别)
		关系数据库由多个相关表组成,这些表使用已知为外键列的常用列链接在一起. 因此,从业务角度来看,每个表中的数据是不完整的. 例如,在示例数据库(yiibaidb)中,使用orderNumber列链接的o ... 
- MySQL连接查询、联合查询、子查询
		参考地址:http://blog.csdn.net/u011277123/article/details/54863371 1.MySQL连接查询 连接查询:将多张表(>=2)进行记录的连接(按 ... 
- MySQL学习——查询表里的数据
		MySQL学习——查询表里的数据 摘要:本文主要学习了使用DQL语句查询表里数据的方法. 数据查询 语法 select [distinct] 列1 [as '别名1'], ..., 列n [as '别 ... 
- MySQL 连接查询汇总
		MYSQL-连接查询: # 连接查询:把多张表进行记录的连接(按照某个条件进行数据的拼接) # 分类 1,内链接 2,外连接 # 左外 # 右外 3,自然连接 4,交叉连接 MYSQL-内链接 : # ... 
- 细说MySQL连接查询:内连、左连和右连
		转: 细说MySQL连接查询:内连.左连和右连 简介: MySQL 的连接查询,通常都是将来自两个或多个表的行结合起来,基于这些表之间的共同字段,进行数据的拼接.首先,要确定一个主表作为结果集,然后将 ... 
随机推荐
- VueCli3新特性
			升级VueCli3的理由: 1.构建速度大大加快,之前看到一个升级的例子是2的3倍速度,具体可以在自己迁移一个项 目测试下,这里的优化有默认开启了多核构建.缓存 并行和缓存 2.webpack被内置到 ... 
- java 动态数组
			package testjavapro; import java.util.*; public class testjava { public static void main(String args ... 
- Error in readRDS(dest) : error reading from connection
			Error in readRDS(dest) : error reading from connection 解决办法:可能是镜像设置错误,导致无法抓取文件 修改 RStudio 中的镜像地址 设置成 ... 
- spark 通过keytab 获取认证
			/usr/local/spark--bin--cdh5.8.0/bin/spark-submit \ --keytab /home/jj/tl.keytab \ --principal vf@FC.C ... 
- cad.net vs调试问题  20190923增加默认启动注册表,20191007更新vs2019到16.3.2
			Acad2008和Acad2010需要修改安装目录下的acad.exe.config文件内容,才可以捕获断点: <configuration> <startup> <!- ... 
- Atlassian JIRA 插件开发之二 安装和创建项目
			安装参考 https://developer.atlassian.com/server/framework/atlassian-sdk/install-the-atlassian-sdk-on-a-w ... 
- lua entry thread aborted: runtime error: /usr/../process.lua:448: attempt to concatenate field 'np_sum_duration' (a userdata value)
			[1]问题场景原代码 引起问题的原代码,访问数据库,汇总数据后,使用汇总结果报异常: local function amount_sum_fee(cycleid) local select_produ ... 
- K-Means 聚类分析学习笔记
			在之前分享的链家二手房数据分析的练习中用到了 K-Means 聚类分析方法,所以就顺道一起复习一下 K-Means 的基础知识好了. K-Means 聚类分析可将样本分为若干个集群,它的核心思想就是使 ... 
- 红黑树和AVL树的区别(转)
			add by zhj: AVL树和红黑树都是平衡二叉树,虽然AVL树是最早发明的平衡二叉树,但直接把平衡二叉树等价于AVL树,我认为非常不合适. 但很多地方都在这么用.两者的比较如下 平衡二叉树类型 ... 
- 整理:WPF中CommandBindings的用法
			原文:整理:WPF中CommandBindings的用法 目的:了解一下CommandBindings.InputBindings.ICommandSource中在WPF中扮演什么样的角色 Comma ... 
