在上一篇文章中,我们具体介绍了如何正确使用Join语句。这里我们将会介绍与Join相关的SQL技巧。
技巧一:使用Join来进行联合更新。
举例:如何更新使用过滤条件中包括自身的表?
情景:把同时存在于取经四人组和悟空兄弟表中的记录的人在取经四人组表中的id字段更新为10。
SQL语句:UPDATE t1 a JOIN(SELECT b.user_name FROM t1 a INNER JOIN t2 b ON a.user_name=b.user_name)b ON a.user_name=b.user_name SET a.id = 10;
技巧二:使用JOIN优化子查询。
查询语句:SELECT a.user_name,a.id,b.id AS id2 FROM t1 a LEFT JOIN t2 b ON a.user_name=b.user_name;
技巧三:使用JOIN优化聚合子查询。
首先我们创建一张新表:师徒四人组每人的打怪数量。
问题:如何查询四人组中打怪最多的id?(避免子查询)
查询语句:SELECT a.user_name,b.id,b.kills FROM t1 a JOIN t3 b ON a.id=b.user_id JOIN t3 c ON c.user_id=b.user_id GROUP BY a.user_name,b.id,b.kills HAVING b.kills = MAX(c.kills);
版权声明:本文为博主原创文章,未经博主允许不得转载。