SELECT aaa.id, REPLACE(bbb.bcode, bbb.bcode, 'a') aa, REPLACE(ccc.ccode, ccc.ccode, 'b') bb, concat_ws( '', REPLACE(bbb.bcode, bbb.bcode, 'a'), REPLACE(ccc.ccode, ccc.ccode, 'b')) ab FROM a aaa left Join b bbb ON ( aaa.id = bbb.ida ) left Join c ccc ON ( aaa.id = ccc.idb ) ORDER BY aaa.id ASC
我专门建了跟你一模一样的表,测试过了,出来的结果也跟你要的一模一样。
你最想要的结果:
SELECT aaa.id, concat_ws( '', REPLACE(bbb.bcode, bbb.bcode, 'a'), REPLACE(ccc.ccode, ccc.ccode, 'b')) ab FROM a aaa left Join b bbb ON ( aaa.id = bbb.ida ) left Join c ccc ON ( aaa.id = ccc.idb ) ORDER BY aaa.id ASC
select a.ID,concat(b.bcode,c.ccode) from a left join b on (a.ID=b.IDa) left join c on (a.ID=c.IDb) order by a.ID;
如果三张表的ID字段名都叫ID的话,join 后面可以用using (ID)就可以了
select a.ID,concat(b.bcode,c.ccode) from a left join b on using (ID) left join c on using (ID) order by a.ID;
---------------
抱歉,以上错了,如果C表里有的ID,在B表里没有则不会被输出。
目前最好的方法是创建临时表,将A,B表整合后的结果输入临时表,然后在将临时表和C表进行数据整合。
你试试不用 语法构造,直接建立同类型(项目)关联,然后再查找。看看可不可行