2012-03-28 3 views
0

Я пытаюсь использовать 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

+0

Неправильный запрос, и мы можем исправить вместе – safarov

+0

im не получив никакой ошибки, когда я использовал JOIN, он показывает только подтверждение. Так что я сделал это: '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 ' – genpet

ответ

1
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

2

Вы должны использовать 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

Смежные вопросы