首页 > SQL拼接多表字段

SQL拼接多表字段

我有多张表,所有表的主键是相同的,都是用户ID,每个表中都有与用户相关的不同信息:

userid    a1    a2    a3    a4
   123     1     4     2     2

userid    b1
   123    13

userid    c1    c2
   123    43    22

userid    d1    d2    d3
   123    54    12    12

拼接后的表如下:

userid    a1    a2    a3    a4    b1    c1    c2    d1    d2    d3
   123     1     4     2     2    13    43    22    54    12    12

现在要将这些字段拼接起来,问题来了,怎么用SQL拼接最高效,需要注意的是以后还会这样关于用户信息的表?


既然是主键,必然userId是唯一性索引,三张表一张作为主表,另外两张表left join 关联,数据量再大也也不存在查询效率问题。
select * from t1 LEFT JOIN t2 on t1.userId = t2.userId LEFT JOIN t3 on t1.userId = t3.userId;

可以用EXPLAIN 看看执行计划,肯定走主键索引的,效率不是问题


用临时表,每个表都筛选后放在临时表,然后再join,这样效率很高,就是麻烦。
数据量不大的直接用视图吧,简单快捷。


这个使用 mysql join 来查询

【热门文章】
【热门文章】