`

mysql左连接查询面试题

 
阅读更多
菜鸟学mysql,左连接练习。


题目要求:
[img]

[/img]


第一步:首先创建第一个表,并添加数据,如下图:

create table m(
mid int primary key auto_increment,
hid int,
gid int,
result varchar(50),
mtime date

);


insert into m
(hid,gid,result,mtime)
values
(1,2,'2:0','2006-05-21'),
(2,3,'1:2','2006-06-21'),
(3,1,'2:5','2006-05-25'),
(2,1,'3:2','2006-07-21');


[img]

[/img]



第二步:创建第二张表,并模拟添加数据,如下:
create table t(
tid int,
tname varchar(10)

);


insert into t
values
(1,'巴萨'),
(2,'皇马'),
(3,'野马队');


[img]

[/img]



第三步,先把输出的顺序搞定,如下:
select hid, result, gid,mtime from m;

[img]

[/img]



第四步:把主队的名字取出来,如下:
select hid,tname, result,gid,mtime 
from
m left join t
on m.hid = t.tid;


[img]

[/img]



第五步:把客队的名字也取出来,如下:
select hid,t1.tname as '主队', result,gid,t2.tname as '客队',mtime 
from
m left join t as t1
on m.hid = t1.tid
left join t as t2
on m.gid = t2.tid;


[img]

[/img]



第六步:再查询一次,这次不需要 hid 与 gid 这两列, ok let's go
select t1.tname as '主队',result as '比分',t2.tname as '客队',mtime as '比赛时间'
from
m left join t as t1
on m.hid = t1.tid
left join t as t2
on m.gid = t2.tid;

[img]

[/img]



第七步:添加查询条件:查询2006-06-01  到2006-07-01之间的比赛
select t1.tname as '主队',result as '比分',t2.tname as '客队',mtime as '比赛时间'
from
m left join t as t1
on m.hid = t1.tid
left join t as t2
on m.gid = t2.tid
where mtime between '2006-06-01' and '2006-07-01';

[img]

[/img]


over








  • 大小: 2.6 KB
  • 大小: 1.3 KB
  • 大小: 3.1 KB
  • 大小: 4.2 KB
  • 大小: 6.2 KB
  • 大小: 7.1 KB
  • 大小: 5.9 KB
  • 大小: 93.9 KB
0
0
分享到:
评论

相关推荐

    100道mysql的面试题

    Hash索引和B+树区别是什么,mysql 的内连接、左连接、右连接,MySQL 的基础架构图,数据库的三大范式,Mysql的binlog有几种录入格式,InnoDB引擎的4大特性,索引有哪几种类型,最左前缀匹配原则,百万级别或以上的...

    常见(MySQL)面试题(含答案).docx

    MyisAM和innodb的有关索引的疑问 innodb为什么要用自增id作为主键 MySql索引是如何实现的 说说分库与分表设计(面试过) 聚集索引与非聚集索引的区别 事务四大特性(ACID)原子...内连接、自连接、外连接(左、右、全)

    【mysql面试题】100道MySQL数据库经典面试题解析

    左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效。   mysql估计使用全表扫描要比使用索引快,则不使用索引。  索引不适合哪些场景  数据量少的不适合加索引   更新比较频繁的也...

    20道mysql面试题.docx

    推荐20道mysql面试题: 1、什么是主键和候选键?它们有什么区别? 2、MySQL 中连接的类型有哪些?它们之间有什么区别? 3、SQL 的生命周期包括哪些阶段? 4、如何编写 SQL 语句来有效地使用复合索引? 5、MySQL 中的...

    MySQL常见面试题 .docx

    MySQL、面试题, 主键、超键、候选键、外键 ACID:原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability) 视图 drop、delete、truncate 索引:唯一索引、主键索引、聚集索引。 连接:左...

    MySQL数据库经典面试题解析

    左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效。 mysql估计使用全表扫描要比使用索引快,则不使用索引。 索引不适合哪些场景 数据量少的不适合加索引 更新比较频繁的也不适合加索引 区分...

    mysql面试题大全.docx

    1. MySQL 索引使用有哪些注意事项呢? 可以从三个维度回答这个问题:索引...• 左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效。 • mysql估计使用全表扫描要比使用索引快,则不使用索引。

    Mysql经典面试题.pdf

    1.什么是索引?为什么要使用索引? 索引是一种数据结构,用于提高数据库的查询效率。它类似于书籍的目录,可以帮助数据库直接定位到指定的数据,...在MySQL中,常见的连接方式有内连接(INNER JOIN)、左连接(LEFT JO

    MySQL常见面试题(表连接类型,count(*),count(列),count(1)的区别,索引,存储引擎,锁,优化)

    MySQL支持的表连接类型分为分为:内连接、左外连接、右外连接。Oracle中支持全外连接,但MySQL不支持。 笛卡尔积:多表连接查询出来的结果,不去除任何未关联数据。例如表A有N条数据,表B有M条数据,查询出来的结果...

    MySQL面试题大总结

    B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的二节点间有指针相关连接,在B+树上的常规检索,从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动,而且基于索引的顺序扫描...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    MySQL面试题

    阐述JDBC操作数据库的步骤 建立数据库连接connection 书写sql语句 执行对象PrepareStatement ...右连接关键字是right join on/right outter join on,查询结果和左连接相反 数据库三范式 一般指在

    MySQL面试经典100题(收藏版,附答案).doc

    左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效。 mysql估计使用全表扫描要比使用索引快,则不使用索引。 索引不适合哪些场景 数据量少的不适合加索引 更新比较频繁的也不适合加索引 ...

    MySQL视频教程-经典MySQL面试题

    这些sql题目几乎涵盖了工作中常用的sql语句,包括内连接中的等值连接,非等值连接,自连接,又包括了外连接中的左外和右外连接。如果想要复习sql,直接将34道作业题做一遍,你就满血了。

    世界500强面试题.pdf

    第一篇 面试题 ................................................................................ 8 1.1. 简介 ................................................................................................

    asp.net知识库

    也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# ...

Global site tag (gtag.js) - Google Analytics