mysql连接查询、子查询、合并查询结果

1、内连接查询
SELECT suppliers.s_id, s_name, f_price FROM tb_name INNER JOIN tb_name1 ON frutis.s_id = suppliers.s_id;

2、外连接-左连接
SELECT customers.c_id, orders.o_num FROM customers LEFT OUTER JOIN orders ON customers.c_id=orders.c_id;

3、外连接-右连接
SELECT customers.c_id, orders.o_num FROM customers RIGHT OUTER JOIN orders ON customers.c_id=orders.c_id;

4、符合条件连接查询
SELECT suppliers.s_id, s_name, f_price FROM tb_name INNER JOIN tb_name1 ON frutis.s_id = suppliers.s_id AND frutis.c_id=10001;

SELECT suppliers.s_id, s_name, f_price FROM tb_name INNER JOIN tb_name1 ON frutis.s_id = suppliers.s_id ORDER BY suppliers.s_id;

5、带ANY、SOME关键字的子查询
SELECT num1 FROM tbl1 WHERE num1 > ANY (SELECT num2 FROM tbl2);

6、带ALL关键字的的子查询
SELECT num1 FROM tbl1 num1 > ALL (SELECT num2 FROM tbl2);

7、带EXISTS关键字的子查询
SELECT * FROM tb_name WHERE EXISTS (SELECT s_name FROM tb_name1 WHERE s_id = 107);

SELECT * FROM tb_name WHERE f_price >10.20 AND EXISTS (SELECT s_name FROM tb_name1 WHERE s_id = 107);

SELECT * FROM tb_name WHERE NOT EXISTS (SELECT s_name FROM tb_name1 WHERE s_id = 107);

8、带IN关键字的查询
SELECT c_id FROM tb_name WHERE o_num IN (SELECT o_num FROM tb_name2 WHERE f_id = 'c0');

SELECT c_id FROM tb_name WHERE o_num IN (1,23);

SELECT c_id FROM tb_name WHERE o_num NOT IN (SELECT o_num FROM tb_name2 WHERE f_id = 'c0');

9、带比较运算符的子查询
SELECT s_id, f_name FROM tb_name WHERE s_id = (SELECT s1.s_id FROM tb_name2 AS s1 WHERE s1.s_city = 'Tianjin');

10、合并查询结果
语法格式:
SELECT column,...FROM table1
UNION [ALL]
SELECT column,...FROM table2

UNION进行了去重,UNION ALL则未去重(效率高于去重)

select user_id,user_nickname,user_status from yy_user where user_status = 1
UNION
select user_id,user_nickname,user_status from yy_user where user_id > 3;
拼接的字段数量要相同。

你可能感兴趣的:(mysql连接查询、子查询、合并查询结果)