MySQL子查询与连接
2016-04-27 16:41
561 查看
子查询:出现在其他SQL语句内的SELECT子句
!子查询必须出现在圆括号内
!子查询的返回值可以是标量、一行记录、一列、或子查询
使用比较运算的子查询
operand comparison_operator subquery
可以使用使用修饰比较运算符:ANY/SOME(满足其中一个),ALL(满足所有)
使用[NOT] IN 的子查询,与修饰比较运算符类似
使用[NOT] EXISTS的子查询
如果子查询返回任何行,EXISTS将返回TRUE,否则返回FALSE
=============
|| 连接 ||
=============
table_reference
{[INNER|CROSS]|{LEFT|RIGHT} [OUTER] JOIN}
table_reference
ON conditional_expr
三种连接类型:
INNER JOIN,(在MySQL中INNER JOIN,JOIN,CORSS JOIN 是等价的)
LEFT [OUTER] JOIN,
RIGHT [OUTER] JOIN
连接条件使用一般ON关键字来设定,也可以用WHERE关键字进行结果记录的过滤
INNER JOIN:只显示符合条件的记录
LEFT JOIN :显示左表的全部记录和右表符合条件的记录
RIGHT JOIN :显示右表的全部记录和左表符合条件的记录
!子查询必须出现在圆括号内
!子查询的返回值可以是标量、一行记录、一列、或子查询
使用比较运算的子查询
operand comparison_operator subquery
SELECT * FROM tdb_goods WHERE goods_price>=(SELECT AVG(goods_price) FROM tdb_goods);当子查询返回多行结果时
可以使用使用修饰比较运算符:ANY/SOME(满足其中一个),ALL(满足所有)
SELECT * FROM tdb_goods WHERE goods_price>=ALL(SELECT goods_price FROM tdb_goods WHERE goods_cate='超级本');
使用[NOT] IN 的子查询,与修饰比较运算符类似
使用[NOT] EXISTS的子查询
如果子查询返回任何行,EXISTS将返回TRUE,否则返回FALSE
=============
|| 连接 ||
=============
table_reference
{[INNER|CROSS]|{LEFT|RIGHT} [OUTER] JOIN}
table_reference
ON conditional_expr
三种连接类型:
INNER JOIN,(在MySQL中INNER JOIN,JOIN,CORSS JOIN 是等价的)
LEFT [OUTER] JOIN,
RIGHT [OUTER] JOIN
连接条件使用一般ON关键字来设定,也可以用WHERE关键字进行结果记录的过滤
INNER JOIN:只显示符合条件的记录
LEFT JOIN :显示左表的全部记录和右表符合条件的记录
RIGHT JOIN :显示右表的全部记录和左表符合条件的记录
相关文章推荐
- mysql UTF-8 中文乱码问题
- Mysql 多表查询详解
- mysql 查询表相关信息
- MySQL技巧
- mysql group_concat_max_len解决group_concat 截断
- Mysql分页查询
- 10倍以上提高Pentaho Kettle的MySQL写入速度
- Mysql 一些常用的指令
- MySQL创建用户与授权方法
- MySQL不存在则创建数据库数据表
- MYSQL 的几种join连接方式
- mysql基础类型知识总结
- MySQL语句进行分组后的含有字段拼接方法
- MySQL性能优化
- 一篇详细的 Mysql Explain 详解
- MySQL 加锁处理分析
- mysql杀死堵塞进程
- MySQL数据类型和常用字段属性总结
- MySQL中group_concat函数
- mysql 外键约束备注