如何连接从2个表中获取数据并将连接保留在mysql

时间:2017-08-07 07:53:34

标签: mysql join left-join

我有这张桌子

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|

我需要在tbl_emp中加入所有3个,无论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   |

1 个答案:

答案 0 :(得分: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

希望它会有所帮助。