MYSQL从一张桌子上拉两列使用JOIN

MYSQL从一张桌子上拉两列使用JOIN

问题描述:

我想使用JOIN,但似乎我只得到一半的结果。以下是表格和所需的输出。MYSQL从一张桌子上拉两列使用JOIN

enter image description here

我没有得到任何错误。
当我使用JOIN时,它只显示approver1。所以我做的是:

SELECT tb1.*, tb2.name AS a1, tb3.name AS a2 
FROM table1 tb1 
     LEFT JOIN approver tb2 
     ON tb1.approve1 = tb2.id 
     LEFT JOIN approver tb3 
     ON tb1.approver2 = tb2.id 

任何帮助或线索将不胜感激。

+0

你得到任何错误消息?如果是这样,请张贴他们 – bernie 2012-03-28 06:20:29

+0

发布您的错误查询,我们可以一起修复 – safarov 2012-03-28 06:21:17

+0

即时通讯没有得到任何错误,当我使用JOIN它只显示approver1。所以我做的是,'select tb1。*,tb2.name AS a1,tb3.name AS a2 FROM table1 tb1 LEFT JOIN批准者tb2 ON tb1.approve1 = tb2.id LEFT JOIN批准者tb3 ON tb1.approver2 = tb2.id ' – genpet 2012-03-28 06:25:15

Select empname, ap_1.name, ap_2.name from Employee 
left join Approver as ap_a on (Employee.approver1 = ap_1.id) 
left join Approver as ap_b on (Employee.approver2 = ap_2.id) 
+0

谢谢,以及。 – genpet 2012-03-28 06:47:25

您必须使用LEFT JOIN来获取没有关联审批者的行。例如。 Dwade Curtis不具有关联approver2

SELECT e.emp_name, a1.name as ap1, a2.name as ap2 
FROM employee e 
LEFT JOIN approver a1 ON (a1.id=e.approver1) 
LEFT JOIN approver a2 ON (a2.id=e.approver2) 

This是SQL的一个良好的视觉解释的JOIN

+0

谢谢。 ()有所不同。 – genpet 2012-03-28 06:47:08