MySQL笔记6.18—2

 

数据库联合查询

 

电商网站数据库
CREATE TABLE category(
	id INT UNSIGNED PRIMARY KEY,
	cname VARCHAR(20) NOT NULL
)

CREATE TABLE goods(
	id INT UNSIGNED PRIMARY KEY,
	gname VARCHAR(100),
	price DECIMAL(8,2),
	gstatus TINYINT DEFAULT 1,
	category_id INT UNSIGNED,
	
	FOREIGN KEY (category_id) REFERENCES category (id)

)

 

 

使用SELECT子句进行多表查询
SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件

SELECT * FROM goods,category WHERE goods.category_id=category.id;

 

# 将表和分类合并
SELECT * FROM category,
	(SELECT * FROM goods WHERE goods.`price`>2500) AS tablel
WHERE category.id=tablel.category_id;

 

# 找出每一个价格大于50的商品以及对应的商品分类
SELECT * FROM goods,category WHERE goods.`category_id`=category.`id` AND goods.`price`>50;

 

 
99语法
select * from goods inner join category 
on goods.`category_id`=category.`id`
where goods.`price`>2500

多表查询
sql92
	select * from 表1,表2.。。。 where 连接条件,筛选条件1,筛选条件2.。。
sql99
	select * from 表1 连接方式 表2 on 连接条件 where 筛选条件

按照功能
内连接:
	查询结果是两张表都匹配到的数据
	
左连接:
	查询的结果是两张表都匹配到是数据,和以左表为主表,对于右表中没有的数据,用 null 填充
	
右链接:
	反之
	
交叉连接:(笛卡尔乘积)
SELECT 字段名 FROM 表1 CROSS JOIN 表2 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值