您的位置:首页 > 数据库 > MySQL

MySQL子查询与连接

2016-04-27 16:41 561 查看
子查询:出现在其他SQL语句内的SELECT子句

!子查询必须出现在圆括号内

!子查询的返回值可以是标量、一行记录、一列、或子查询

使用比较运算的子查询

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 :显示右表的全部记录和左表符合条件的记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: