MySQL--操作简记(联结表,组合查询(UNION))
2017-08-17 17:39
543 查看
联结表
1.创建联结
SELECT vend_name,prod_name,prod_price FROM vendors, products WHERE vendors.vend_id = products.vend_id
上面的语句与之前最大的区别在于,指定的列位于两张表内,使用where进行联结。
返回表vendors与表products中vend_id相等的vend_name,prod_name,prod_price
基于两个表之间的相等测试,这种联结称为等值联结,或内部联结。对于这种联结,还可以使用下面这种语法:
INNER JOIN
ON
SELECT vend_name,prod_name,prod_price FROM vendors INNER JOIN products ON vendors.vend_id = products.vend_id
2.联结多个表
SELECT vend_name,prod_name,prod_price, quantity FROM vendors, products, order WHERE vendors.vend_id = products.vend_id AND order.prod_id = products.vend_id AND order_num = 20005;
FROM后跟多个表,WHERE子句条件用AND连接。
3.联结的其他类型
自联结:在select语句中不止一次引用相同的表自然联结:至少有一个列出现在不止一个表中
外部联结:联结包含了在相关表中没有关联行的行
组合查询
执行多个查询(多条SELECT语句),并将结果作为但个查询结果集返回。1.创建组合查询
UNION例如,我想查询价格小于10 或供应商名字为a的id号,即下面的两段语句怎么同时实现
SELECT order_id, order_price, order_name FROM order1 WHERE order_price < 10;
SELECT order_id, order_price, order_name FROM order1 WHERE order_name = 'a';
使用union组合:
SELECT order_id, order_price, order_name
FROM order1
WHERE order_price < 10
UNION
SELECT order_id, order_price, order_name FROM order1 WHERE order_name = 'a';
2.UNION规则
必须由两条或两条以上的select语句组成,每两条之间用一个UNION分隔UNION中的每个查询必须包含相同的列,表达式或聚集函数
列数据类型必须兼容,类型不必完全相同,但必须是可以隐含转换的类型
使用UNION满足了条件后,可能会有条件满足重复的,就会有重复,使用UNION ALL可以自动除去重复的行
3.对组合查询结果排序
在使用UNION组合查询时,只能使用一条ORDER BY子句,必须出现在最后一条SELECT语句之后。相关文章推荐
- MySQL--操作简记(联结表,组合查询(UNION))
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- MySQL学习笔记----子查询、联结表、组合查询、全文本搜索
- MySQL学习笔记----子查询、联结表、组合查询、全文本搜索
- MySQL基础(4)——子查询(嵌套查询)、联结表、组合查询
- mysql组合查询(union和union all)
- MySQL--操作简记(汇总数据(聚集函数),分组数据,子查询)
- MySQL查询优化UNION操作一例
- Mysql 组合查询 UNION 与 UNION ALL
- jpa+mysql,union组合查询求和结果出错
- 【MySQL】SELECT语句 联结表 高级联结 组合查询 全文本搜索
- Mysql中的组合查询和UNION操作符
- MySQL 内连接 左连接 右连接 外连接(union组合查询)
- mysql union all与子查询结合效率对比
- MySQL多表查询的基本操作
- Mysql子查询、UNION操作
- mysql中创建表实例全析及查询基本操作
- MySQL查询补充 HTML简记 6.30
- 一个优化MySQL查询操作的具体案例分析
- Java 连接MYSQL基本操作 查询更新