SQL特殊使用法-表格的合并(使用mysql)

我有两表格,要合并起来如下

https://www.zhihu.com/question/283224223
图片地址如上(我放在知乎)

A_table和B_table要合并成下面的表格,但是A_table列数是唯持不变的
是将B_table的值,载入进来
特别的地方是:B_table中A_id有多次的重覆,但我只要把一个载入就好了
尽量不要用group by 因为量很大

5个回答

 select aid, astr, (select max(bstr) from btable where aid = a.aid) as bstr from atable a

或者先对b做griup by如果b不大,或者aid有索引,这个性能开销是不大的。

select a.aid, a.astr, b.bstr from atable a left joim (select aid, max(bstr) as bstr from btable group by aid) b on a.aid = b.aid
weixin_40187983
weixin_40187983 我暂时用比较慢的方式,一个一个回圈载入,慢了约你的3倍,暂时可用
一年多之前 回复
weixin_40187983
weixin_40187983 就是说我用了你第一个方法,得到了我想要的表格,,得到这个表格后,我繼续去update a_table中的某一栏,就不行了
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复weixin_40187983: 合并到哪里?atable还是btable
一年多之前 回复
weixin_40187983
weixin_40187983 我用这你第一方法了! 合并完后,还要update A_table,!这是这样的合并就不能update了
一年多之前 回复

图片说明

SELECT DISTINCT A.a_id,A.a_str,B.b_str FROM A LEFT OUTER JOIN B ON A.a_id=B.a_id ORDER BY A.a_id;
这样行吗 最近在学MySQL

select a.a_id,a.a_str,b.b_str from atable a inner join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

或 导出结果集到一个新的表

select a.a_id,a.a_str,b.b_str

into newTable
from atable a inner join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

上面的代码有点问题,看这里的

select a.a_id,a.a_str,ifnull(b.b_str,'') from atable a left join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

或 导出结果集到一个新的表

select a.a_id,a.a_str,ifnull(b.b_str,'')

into newTable
from atable a inner join (select b.b_id,b.b_str from btable group by b.b_id,b.b_str) b on b.a_id=a.a_id

a1326195427
梦小星 第二个SQL语句的 inner join 改成 left join即可
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问