Mysql查询——深入学习
1、开篇
之前上一篇的随笔基本上是单表的查询,也是mysql查询的一个基本。接下来我们要看看两个表以上的查询如何得到我们想要的结果。
在学习的过程中我们一起进步,成长。有什么写的不对的还望可以指出。
2、查询
(1)多表之间的查询(笛卡尔积) 100* 100 = 10000 查询的数据量可能非常大
SELECT pj_appoint_order.user_name,pj_user_account.account_name FROM pj_appoint_order,pj_user_account;
给表名取别名
SELECT pa.user_name,pu.account_name FROM pj_appoint_order pa,pj_user_account pu;
(2)关联查询
隐示内连接查询。
(Sql92)
SELECT pa.user_name,pu.account_name FROM pj_appoint_order pa,pj_user_account pu WHERE pa.id = pu.pid;
内连接查询。
(Sql99)
SELECT pa.user_name,pu.account_name FROM pj_appoint_order pa INNER JOIN pj_user_account pu ON pa.id = pu.pid;
left join on
如果我写 left join on 就以左表为主
right join on
如果我写 right join on 就以右表为主
例如:SELECT
t1.id id,
t1.order_id AS designOrderId,
t1.manager_id,
t1.project_name projectName,
t1.user_name userName,
t1.user_phone userPhone,
t1.work_price workPrice,
t1.type_id typeId,
t1.create_time createTime,
t1.update_time updateTime,
t1.project_start_time startTime,
t1.project_end_time endTime,
t1.status status,
t3.meet_time meetTime,
t3.meet_type meetType,
t3.meet_content meetContent,
t5.total totalMain,
t6.total totalSub
FROM pj_project_order t1 LEFT JOIN pj_design_order t2 ON t1.order_id = t2.id
LEFT JOIN pj_order_comm_record t3 ON t2.id = t3.order_id
LEFT JOIN pj_order_design_task t4 ON t2.id = t4.order_id
LEFT JOIN pj_order_design_main_material t5 ON t4 .id = t5.task_id
LEFT JOIN pj_order_design_sub_material t6 ON t4.id = t6.task_id
WHERE 1=1
<if test="manager_id != null">
AND t1.manager_id = #{manager_id}
</if>
AND
t1.project_start_time IS NOT NULL
AND
t1.project_end_time IS NULL
</select>
(3)子查询 -我们以一条查询结果 做为查询条件这叫做子查询 --------------子查询的效率不高
SELECT * FROM person WHERE id = 1
SELECT pid FROM car WHERE carname='hanma'
SELECT * FROM person WHERE id = ( SELECT pid FROM car WHERE carname='hanma' );
(4)UNION 结合两个查询集
SELECT * FROM pj_appoint_order WHERE id = 1093 UNION SELECT * FROM pj_appoint_order WHERE id = 1094
Mysql查询——深入学习的更多相关文章
- [转]向facebook学习,通过协程实现mysql查询的异步化
FROM : 通过协程实现mysql查询的异步化 前言 最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能.由于facebook实现的比较早,他们不得不对php ...
- 从项目上一个子查询扩展学习开来:mysql的查询、子查询及连接查询
上面这样的数据,想要的结果是:如果matchResult为2的话,代表是黑名单.同一个softId,version,pcInfoId的代表是同一个软件,需要去重:同时,如果相同软件里面只要有一个mat ...
- Mysql 查询练习
Mysql 查询练习 ---创建班级表 create table class( cid int auto_increment primary key, caption ) )engine=innodb ...
- MySQL查询重复出现次数最多的记录
MySQL查询的方法很多,下面为您介绍的MySQL查询语句用于实现查询重复出现次数最多的记录,对于学习MySQL查询有很好的帮助作用. 在有些应用里面,我们需要查询重复次数最多的一些记录,虽然这是一个 ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)
七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...
- 【笔记】MySQL的基础学习(二)
[笔记]MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...
随机推荐
- 听歌识曲--用python实现一个音乐检索器
听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...
- 怎么解决tomcat占用8080端口问题
怎么解决tomcat占用8080端口问题 相信很多朋友都遇到过这样的问题吧,tomcat死机了,重启eclipse之后,发现 Several ports (8080, 8009) requir ...
- Linux下Weblogic创建域方法和步骤
Weblogic 创建域 以weblogic帐号登录(与创建域目录相对应账户) cd /home/weblogic/bea/weblogic92/common/bin 执行./config.sh进入配 ...
- Java中日期的转化
4.如何取得年月日.小时分秒? 创建java.util.Calendar实例(Calendar.getInstance()),调用其get()方法传入不同的参数即可获得参数所对应的值,如:calend ...
- .Container与.container_fluid区别
.Container与.container_fluid是bootstrap中的两种不同类型的外层容器,两者的区别是:.container 类用于固定宽度并支持响应式布局的容器..container-f ...
- 北京54全国80及WGS84坐标系的相互转换
这三个坐标系统是当前国内较为常用的,它们均采用不同的椭球基准.其中北京54坐标系,属三心坐标系,大地原点在苏联的普而科沃,长轴6378245m,短轴6356863,扁率1/298.3:西安80坐标系, ...
- 日期关联取最近日期的SQL
SQL怎么关联,如下图A表用日期加产品编号关联B表的时候,如果日期不存在,则取之前最近一个日期的值,比如A表2012-07-31 关联B表,B表没有对应日期的,就取2012-07-30的 A表 ...
- iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ①)
好长时间没更新博客, 是时候来一波干货分享了;APP引导页话不多说每一个APP都会用到,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了吧,当然这里讲的不是 ...
- C#接口的显示和隐式实现
早上骑车上班走到半路发现手机忘带了,这年代兜里没装一分现金,吃饭都要刷手机,上班时间无聊了不能玩手机更是大问题,所以果断掉头拿手机.取完手机刚出门看这天阴沉沉的貌似要下雨,没雨衣,骑车又不能打伞,上次 ...
- AEAI ESB路由转换机制说明
1. 背景概述 相信了解数通畅联的人对AEAI ESB并不陌生,其设计器ESBDesigner中内置组件有:路由和转换.数据适配器.协议适配器.协议接入适配器等4类组件,每类组件下面包含各种类型的组件 ...