2017-08-07 92 views
-1

我有这个表如何加入得到2个表和左数据加入到1个表中的MySQL

tbl_emp 

    ID| name | 
    1 | a | 
    2 | b | 
    3 | c | 
    4 | d | 

tbl_remit 

    ID| remit | 
    1 | 2012-01-01| 
    2 | 2013-01-01| 
    3 | 2012-05-01| 


tbl_report 

    ID| report | 
    1 | 2012-01-01| 
    2 | 2013-01-01| 
    3 | 2012-05-01| 

我要加入他们的所有3 tbl_emp无论是否存在tbl_remit或tbl_report数据。

这里是我使用,但失败的码。

SELECT tbl_emp*, tbl_remit.remit, tbl_report.report from tbl_emp 
left join tbl_emp.ID = tbl_remit.ID LEFT JOIN tbl_emp.ID = tbl_report.ID 

我得到了桌子

ID | remit | report | 
1 | NULL | NULL | 
2 | NULL | NULL | 
3 | NULL | NULL | 
4 | NULL | NULL | 

我需要的表是

ID | remit | report | 
1 |2012-01-01|2012-01-01| 
2 |2013-01-01|2013-01-01| 
3 |2012-05-01|2012-05-01| 
4 | NULL | NULL | 
+0

您加入语法是假的。该查询真的有用吗?语法必须是'from

加入在加入' – Jens

+0

'对不起,我忘记输入ON条件,我无法正确地复制或记忆语法sir,我的意思是'SELECT tbl_emp *,tbl_remit .remit,从tbl_emp 左tbl_report.report加入tbl_emp.ID = tbl_remit.ID ON tbl_emp.PEN = tbl_remit.PEN LEFT JOIN tbl_emp.ID = tbl_report.ID ON tbl_emp.PEN = tbl_report.PEN' – Clorae

回答

0

为此,您可以通过连接你的其他两个表内连接。并将结果表与emp表连接起来。为此,您可以使用子查询。

select * from tbl_emp x left join (
    select a.id as id, a.remit as remit,b.report as report from 
    tbl_remita,tbl_report b where a.id=b.id) y on x.id = y.id 

希望它会有所帮助。