MySQL 子查询与连接操作笔记

  SQL语句之间是可以进行连接操作的,在一些复杂的数据操作中必须用到连接操作。简单的说就是一个SQL语句的结果可以作为相连接的SQL操作的一部分。SQL结构化查询语句,子查询是指的所有的SQL操作,并非单一的SELECT语句。

    1.由比较运算符产生:

SELECT user_name,user_id,user_phone FROM users WHERE user_age >=(SELECT ROUND(AVG(age),0) FROM users);

可以使用ANY,SOME,ALL对查询进行。

SELECT user_name,user_id,user_phone FROM users WHERE user_age >= ANY (SELECT ROUND(AVG(age),0) FROM users);

  2.由[NOT] IN/EXIS产生   

  

SELECT user_name,user_id,user_phone FROM users WHERE user_age >= NOT IN (SELECT ROUND(AVG(age),0) FROM users);

  

  3.由INSERT......SELECT产生

CREATE TABLE tdb_goods_brands (

    brand_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

    brand_name VARCHAR(40) NOT NULL

  ) SELECT brand_name FROM tdb_goods GROUP BY brand_name
UPDATE tdb_goods  INNER JOIN tdb_goods_brands ON brand_name = brand_name SET brand_name = brand_id;
原文地址:https://www.cnblogs.com/daiyu/p/4705438.html