MySQL将一个表连接到其他两个表

时间:2019-12-11 14:08:50

标签: mysql

我有一个MySQL数据库,其中包括以下用于维护某些文档交易的表。

tbl_documents表

+----+---------+------+---------+
| id | file_no | name | subject |
+----+---------+------+---------+
|  1 | A/10    | F1   | a       |
|  2 | A/11    | F2   | b       |
|  3 | A/12    | F3   | c       |
|  4 | A/13    | F4   | d       |
+----+---------+------+---------+ 

tbl_requests

+----+-------------+----------------+---------------+
| id | document_id | requested_date | approved_date |
+----+-------------+----------------+---------------+
|  1 |           1 | 2019-12-01     | 2019-12-02    |
|  2 |           2 | 2019-12-08     | 2019-12-08    |
+----+-------------+----------------+---------------+

tbl_issues

+----+-------------+------------+
| id | document_id | issue_date |
+----+-------------+------------+
|  1 |           1 | 2019-12-05 |
|  2 |           2 | 2019-12-10 |
+----+-------------+------------+

我想通过连接以上三个表来获得以下/所需的输出。

所需的输出

+---------+------+---------+----------------+---------------+------------+
| file_no | name | subject | requested_date | approved_date | issue_date |
+---------+------+---------+----------------+---------------+------------+
| A/10    | F1   | a       | 2019-12-01     | 2019-12-02    | 2019-12-05 |
| A/11    | F2   | b       | 2019-12-08     | 2019-12-08    | 2019-12-10 |
+---------+------+---------+----------------+---------------+------------+

为此,我使用了以下查询

select tbl_documents.file_no, tbl_documents.name, tbl_documents.subject, requested_date, approved_date, tbl_issues.issue_date 
from tbl_documents            
right join tbl_requests on tbl_requests.document_id=tbl_documents.id
right join tbl_issues on tbl_issues.document_id=tbl_documents.id

但是没有得到预期的输出。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

只需使用内部联接,如下所示:

1 2016-05-13 22:29:26.402+00 Deposit 2
1 2019-03-21 21:02:10.509+00 Withdrawal 3
1 2019-12-06 23:34:15.194+00 Deposit 1
2 2019-12-03 23:21:33.465+00 Withdrawal 1
2 2019-12-06 20:07:11.122+00 Deposit 2