mysql的学习笔记(九)

mysql不支持FULL JOIN时可用UNION ALL代替

SELECT t1.user_id,t2.user_name FROM t1 LIFT JOIN t2 ON t1.user_id = t2.user_id 
UNION ALL SELECT t2.user_id,t2.user_name FROM t1 RIGHT JOIN t2 ON t1.user_id = t2.user_id

 交叉连接(笛卡尔积连接)A*B,避免笛卡尔积

SELECT t1.user_id,t2.user_name FROM t2 CROSS JOIN t2

 使用join优化子查询

SELECT a.user_id,a.user_name,(SELECT user_name userName b WHERE a.user_name=b.user_name ) user_name2 FROM a
SELECT a.user_id,a.user_name FROM a LEFT JOIN b ON a.user_name = b.user_name

 分组选择

SELECT d.user_name,c.timestr,kills FROM( SELECT user_id,timestr,kills,(SELECT COUNT(*) FROM user_kills b WHERE b.user_id = a.user_id AND a.kills<=b.kills) 
AS cnt FROM user_kills a GROUP BY user_id,timestr,kills) c JOIN user1 d ON c.user_id = d.id WHERE cnt<=2

猜你喜欢

转载自www.cnblogs.com/dslx/p/9683215.html