SQL 多表查询的几种连接方式
--创建数据库
create database GoodsSystem
go
--使用数据库
use GoodsSystem
go
--创建商品类型表
create table GoodsType
(
IO int primary key identity(1,1),
typename varchar(10)not null
)
go
--创建商品信息表
create table Goods
(
Id int primary key identity(1,1),
Typeld int foreign key references GoodsType(IO),
Name varchar(20)not null,
Price decimal(10,2) not null,
ProductionDate datetime not null,
Amount int not null
)
go
插入数据
insert into GoodsType values
('家电'),
('电子'),
('食品'),
('生活用品') insert into Goods values
('','冰箱',3344,'2017-06-03',100),
('','电视',1777,'2016-06-03',100),
('','微波炉',333,'2017-02-26',100),
('','手机',4500,'2017-05-07',100),
('','显示器',1777,'2016-12-04',100),
('','主机',1500,'2017-03-09',100),
('','老干妈',9,'2017-07-06',100),
('','爽口榨菜',3.6,'2017-06-08',100)
查询:
select * from GoodsType
select * from Goods
--内连接(inner可以不写)
select g1.name,g2.Name,price,productiondate,g2.Amount
FROM GoodsType g1 inner join Goods g2 on g1.IO=g2.Typeld
select * from Goods
select * from GoodsType --外连接分(左外连接)和(右外连接) --左外连接( left join)
select g2.Name,Price,ProductionDate,Amount,g1.name
FROM Goods G1 left join GoodsType G2 on G1.Typeld=G2.IO --右外连接(right join--空值的会显示出来)
select g2.Name,Price,ProductionDate,Amount,g1.name
FROM Goods G1 right join GoodsType G2 on G1.Typeld=G2.IO --全外连接(full outer(可以不写) join--空值的会显示出来)
select g1.name,g2.Name,price,productiondate,g2.Amount
FROM GoodsType g1 full outer join Goods g2 on g1.IO=g2.Typeld --交叉连接(笛卡尔积)查询所有的值
select g1.name,g2.Name,price,productiondate,g2.Amount
FROM GoodsType g1 cross join Goods g2 where g1.IO=g2.Typeld
SQL 多表查询的几种连接方式的更多相关文章
- mybatis一对一联表查询的两种常见方式
		
1.一条语句执行查询(代码如下图) 注释:class表(c别名),teacher表(t别名)teacher_id为class表的字段t_id为teacher表的字段,因为两者有主键关联的原因,c_i ...
 - mybatis一对多联表查询的两种常见方式
		
1.嵌套结果查询(部分代码如下) sql语句接上: 注释:class表(c别名),student表teacher(t别名)teacher_id为class表的字段t_id为teacher表的字段,因为 ...
 - Sql Server的艺术(四) SQL多表查询
		
表的基本连接 SQL的一个重要特性就是能通过JOIN关键词,从多个交叉表中查询.分析数据. 连接表的目的 在关系数据库中,数据表设计的一个重要原则就是要避免冗余性. 减少了冗余信息,节省了数据库存储空 ...
 - oracle SQL多表查询
		
SQL多表查询 1.集合理论 1.1 什么是集合 具有某种特定性质的事物的总体. 集合的特性:无序性.互异性.确定性. 一个集合可以小到从一个表中取出一行中的一列. 1 ro ...
 - SQL多表查询总结
		
前言 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要.只有真正了解它们之间的区别,才能正确使用. 一.Union UNION 操作符用于合并两个或多个 SELE ...
 - 【数据库】sql连表查询
		
SQL总结 连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union UNION 操作符用于合并两 ...
 - MySQL基础(三)多表查询(各种join连接详解)
		
Mysql 多表查询详解 一.前言 二.示例 三.注意事项 一.前言 上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有哪些 ...
 - sql多表查询之一:Where 和 On的秘密
		
原文 sql多表查询之一:Where 和 On的秘密 对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术.什么时候会用到sql多表查询呢?是在两张或两张以上表单中通过某 ...
 - oracle Hash Join及三种连接方式
		
在Oracle中,确定连接操作类型是执行计划生成的重要方面.各种连接操作类型代表着不同的连接操作算法,不同的连接操作类型也适应于不同的数据量和数据分布情况. 无论是Nest Loop Join(嵌套循 ...
 
随机推荐
- 华南理工大学 “三七互娱杯”  C HRY and Abaas
			
https://ac.nowcoder.com/acm/contest/874/C 题目大意是两人俄罗斯轮盘赌 n个位置 有m个子弹 已知哪些位置上有子弹 子弹打出 游戏结束 求第i次扣动扳机游戏才结 ...
 - Oracle 修改数据文件路径的方法
			
1. 关闭数据库,然后启动至mount状态 sqlplus / as sysdba shutdown immediate startup mount 2. 修改物理文件: 我这边将: c:\cwd ...
 - C++ static、const和static const类型成员变量声明以及初始化
			
C++ static.const和static const 以及它们的初始化 const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. sta ...
 - Chrome开发者工具详解(二)之使用断点调试代码下
			
JS调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 右侧的Breakpoints会汇总你在JS文件所有打过的断点,点击跟checkbox同一行的会暂时取消这个断点,若是点击chec ...
 - JS的for循环包裹异步函数的问题
			
有个循环,循环一个异步回调,为啥回调引用的循环值都是最后一步循环的循环值?然后,又有些时候无论什么循环值都得不到? var arr = [1,3,5,7,9]; var arrLength = arr ...
 - 前端开发HTML&css入门——HTML
			
HTML究竟为何物?其实HTML就是一种标记语言,英文全称为Hypertext Markup Language,翻译过来就叫超文本标记语言.它的作用就是负责负责网页的三个要素之中的结构. HTML使用 ...
 - lspci - 列出所有PCI设备
			
总览 SYNOPSIS lspci [options] 描述 DESCRIPTION lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具. 为了能使用这个命令所有功能, ...
 - 计算机编号、硬盘序列号和Mac地址查询方法
			
(1)计算机编号: SN也就是Serial Number的缩写,中文也就是产品序列号,而电脑的后面一般也有一个这样的SN序列号,那么怎么查看电脑的S/N序列号呢? 方法一: 将笔记本电脑翻过来,然后在 ...
 - MySQL 5.7原生通用二进制格式安装包安装过程
			
目录 官方文档 文件说明 官方文档 https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html 文件说明 Directory Co ...
 - GUI学习之十五——QAbstractSpinBox学习总结
			
QAbstractSpinBox是一个抽象类,是将所有步长调节器的通用的功能抽象出了一个父类.虽然QAbstractSpinBox是一个抽象类,但是可以直接实例化使用.QAbstractSpinBox ...