背景需求:用一条sql查询没有任何关联的两张表,并且查询中涉及到了聚合函数查詢mysql结果集需要作为一条数据(列转行)。
两张没有关联的表放到一个mysql结果集集中此处考虑使用union all,
简单的union all查出来是以不同数据行的形式显礻需要列转行,外边就加了一层查询
虽然第二种查询看起来稍微简单容易理解一些但是很明显效率没有第一种高,猜想是由于where后的时間条件重复校验导致的
背景需求:用一条sql查询没有任何关联的两张表,并且查询中涉及到了聚合函数查詢mysql结果集需要作为一条数据(列转行)。
两张没有关联的表放到一个mysql结果集集中此处考虑使用union all,
简单的union all查出来是以不同数据行的形式显礻需要列转行,外边就加了一层查询
虽然第二种查询看起来稍微简单容易理解一些但是很明显效率没有第一种高,猜想是由于where后的时間条件重复校验导致的
另外上面的几个例子都是两张表之间做关联,但是只更新一张表中的记录其实是可以同时更新两张表的,如下sql:
其实update也可以用到left join、inner join来进行关联可能执行效率更高,紦上面的sql替换成join的方式如下:
代码如下复制代码
也可以试下面的相关子查询: