学习笔记,以代码和例子堆砌而成,方便查阅。
参考书籍:《Mysql必知必会》等
要点:联结、INNER JOIN、ON关键字


此Blog会用到下面3个表.

temp_store表:

# pr_id, store_num
'1001', '2000'
'1002', '1000'
'1003', '500'
'1004', '1000'
'1005', '700'

temp_product表:

# pr_id, pro_name, price
'1001', 'Apple', '3'
'1002', 'Pen', '50'
'1003', 'Book', '35'
'1004', 'Hamburger', '10'
'1005', 'Toy', '15'

temp_shop表:

# id, pr_id, sale_num, customer
'1', '1001', '10', 'Ada'
'2', '1001', '4', 'Peter'
'3', '1001', '2', 'Jack'
'4', '1002', '10', 'Black'
'5', '1002', '2', 'Tim'
'6', '1003', '5', 'Kit'
'7', '1004', '2', 'Bunny'
'8', '1005', '100', 'Horde'
'9', '1005', '5', 'Mansion'

等值联结

SELECT pro_name, customer FROM temp_product, temp_shop WHERE temp_product.pr_id=temp_shop.pr_id;

查询结果:

# pro_name, customer
'Apple', 'Ada'
'Apple', 'Peter'
'Apple', 'Jack'
'Pen', 'Black'
'Pen', 'Tim'
'Book', 'Kit'
'Hamburger', 'Bunny'
'Toy', 'Horde'
'Toy', 'Mansion'

在这个查询语句中,SELECT 指定要检索的列,这里我们检索temp_product表中的产品名称(pro_name)和temp_shop表中的客户(customer)

再来看FROM子句,这里我们的FROM子句列出了两个表temp_product和temp_shop,这俩表就是SELECT语句要联结的两个表的名字。这俩表用WHERE子句联结,WHERE告诉MYSQL匹配temp_product表中的pr_id和temp_shop表中的pr_id

我们看看不使用WHERE子句,会发生啥事情:

SELECT pro_name, customer FROM temp_product, temp_shop;

查询结果:

# pro_name, customer
'Apple', 'Ada'
'Pen', 'Ada'
'Book', 'Ada'
'Hamburger', 'Ada'
'Toy', 'Ada'
'Apple', 'Peter'
'Pen', 'Peter'
'Book', 'Peter'
'Hamburger', 'Peter'
'Toy', 'Peter'
'Apple', 'Jack'
'Pen', 'Jack'
'Book', 'Jack'
'Hamburger', 'Jack'
'Toy', 'Jack'
'Apple', 'Black'
'Pen', 'Black'
'Book', 'Black'
'Hamburger', 'Black'
'Toy', 'Black'
'Apple', 'Tim'
'Pen', 'Tim'
'Book', 'Tim'
'Hamburger', 'Tim'
'Toy', 'Tim'
'Apple', 'Kit'
'Pen', 'Kit'
'Book', 'Kit'
'Hamburger', 'Kit'
'Toy', 'Kit'
'Apple', 'Bunny'
'Pen', 'Bunny'
'Book', 'Bunny'
'Hamburger', 'Bunny'
'Toy', 'Bunny'
'Apple', 'Horde'
'Pen', 'Horde'
'Book', 'Horde'
'Hamburger', 'Horde'
'Toy', 'Horde'
'Apple', 'Mansion'
'Pen', 'Mansion'
'Book', 'Mansion'
'Hamburger', 'Mansion'
'Toy', 'Mansion'

语句执行记录:

21:56:15 SELECT pro_name, customer FROM temp_product, temp_shop LIMIT 0, 1000    45 row(s) returned  0.000 sec / 0.000 sec

可以看到,输出了9*5=45条记录,啧啧啧,真残暴。

内联结

SELECT pro_name, customer FROM temp_product INNER JOIN temp_shop ON temp_product.pr_id=temp_shop.pr_id;

查询结果:

# pro_name, customer
'Apple', 'Ada'
'Apple', 'Peter'
'Apple', 'Jack'
'Pen', 'Black'
'Pen', 'Tim'
'Book', 'Kit'
'Hamburger', 'Bunny'
'Toy', 'Horde'
'Toy', 'Mansion'

这条SQL语句中,SELECT语句和前面那条SELECT语句一毛一样,但是FROM子句不同,这里,俩表之间的关系以INNER JOIN指定,在使用这种语法时,联结条件用特定的ON子句而不是WHERE子句。

其实等值联结也称为内部联结,所以除了SQL代码不同,我们看到这俩语句得到的结果是一样的,但是我们还是支持使用这种写法。

联结多个表

SELECT pro_name, store_num, customer FROM temp_product, temp_store, temp_shop WHERE temp_product.pr_id=temp_shop.pr_id AND temp_store.pr_id=temp_shop.pr_id AND temp_shop.SALE_NUM=2;

查询结果:

# pro_name, store_num, customer
'Apple', '2000', 'Jack'
'Pen', '1000', 'Tim'
'Hamburger', '1000', 'Bunny'

初识Mysql(part17)--我需要知道的3条Mysql语句之联结相关推荐

  1. 初识Mysql(part19)--我需要知道的3条Mysql语句之组合查询

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UNION.UNION ALL 此Blog会用到下面2个表. temp_product2: # id, ...

  2. 初识Mysql(part16)--我需要知道的2条Mysql语句之子查询

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 此Blog会用到下面3个表. temp_store表: # pr_id, store_num '1001', ...

  3. 初识Mysql(part15)--我需要知道的4条Mysql语句之操作表

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:ALTER关键字.RENAME关键字.DROP关键字.ADD关键字 此Blog里的例子都会用下面的te ...

  4. 初识Mysql(part13)--我需要知道的7条Mysql语句之更新和删除数据

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UPDATE关键字.IGNORE关键字.DELETE关键字.TRUNCATE TABLE语句 此Blo ...

  5. 初识Mysql(part12)--我需要知道的3条Mysql语句之插入数据

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:INSERT INTO子句 此Blog里的例子都会用下面的grouping表和grouping2表. ...

  6. 初识Mysql(part11)--我需要知道的4条Mysql语句之分组

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:GROUP BY子句.HAVING关键字 此Blog里的例子都会用下面grouping数据表: # i ...

  7. 初识Mysql(part6)--我需要知道的4条Mysql语句之利用通配符过滤

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:LIKE关键字.通配符%.通配符_ 此Blog里的例子都会用下面store数据表: # id, pro ...

  8. 初识Mysql(part5)--我需要知道的11条Mysql语句之过滤

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:WHERE关键字.AND关键字.OR关键字.IS关键字.IN关键字 此Blog里的例子都会用下面int ...

  9. 初识Mysql(part4)--我需要知道的5条Mysql语句之排序

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:ORDER关键字.DESC关键字 按照price的大小对name和price列进行排序(默认升序). ...

最新文章

  1. 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(二)寻找物体的凸包
  2. 性能调优-SQL TRACE
  3. DNS 与 活动目录 的关系
  4. 如何增加儿童产品中的趣味性?
  5. C# in Depth-类型系统的特征
  6. [蓝桥杯][历届试题]网络寻路(DFS)
  7. LeetCode 541. 反转字符串 II
  8. linux 内核 核心代码,8分钟掌握Linux内核分析的核心科技
  9. 神奇的python(四)之logging日志文件系统
  10. php里面什么是u函数,ThinkPHP内置函数----U方法
  11. 已知p是一个指向类a的数据成员m的指针_C++ this指针的理解和作用
  12. 小程序毕设作品之微信校园洗衣小程序毕业设计成品(6)开题答辩PPT
  13. 软件测试——开发模型、测试模型介绍
  14. SPSS联合Excel进行logistic回归亚组交互效应(交互作用)的可视化分析
  15. matlab 双均线,双均线策略(CTA)
  16. Java时间系列(JDK8)--Duration的使用
  17. 面试被问到CAS原理,触及知识盲区,脸都绿了!
  18. 海南新能源内容市场遇冷,本土内容平台杉车网如何解围?
  19. 流程图分级、分类、分层
  20. 计算机辅助设计在环境工程中的应用,试论计算机辅助设计在环境工程中的应用原稿(全文完整版)...

热门文章

  1. linux mode4的双网卡绑定,Linux实现双网卡绑定自动化脚本 | 聂扬帆博客
  2. c#中计算三角形面积公式_看着有点迷的三角形面积计算
  3. mongodb 启动_精心总结--mongodb分片集群启动与关闭
  4. p7zip的解压和压缩
  5. #17# SCCM管理 - 软件中心 VS 应用程序目录网站点
  6. 2018“百度之星”程序设计大赛 - 复赛
  7. 新一代球王!日本推AI篮球机器人,命中率接近100%!
  8. Chrome 或将于2018年正式弃用 HPKP 公钥固定标准
  9. Azure已成为微软业绩的顶梁柱
  10. 妙用通配符证书发布多个安全站点