2013-03-14 3 views
1

Привет, я пытаюсь сделать запрос с парой INNER JOIN, Где моя ошибка?MySQL, второй INNER JOIN

ВЫБОР job_tbl.id, accounts.username А.С. стартера, accounts.username как работник, job_tbl.comment, job_tbl.date, job_tbl.status

ОТ job_tbl

INNER JOIN счета ПО job_tbl.starter = accounts.id

INNER JOIN счета ON job_tbl.worker = accounts.id

job_tbl стол здесь:

+----+---------+--------+---------+------+--------+ 
| id | starter | worker | comment | date | status | 
+----+---------+--------+---------+------+--------+ 
| 1 | 1 | 3 | qwe | date | 10 | 
+----+---------+--------+---------+------+--------+ 
| 2 | 2 | 1 | qwe | date | 10 | 
+----+---------+--------+---------+------+--------+ 

счета таблица здесь:

+----+------------+-----------+-------+ 
| id | username | extension | email | 
+----+------------+-----------+-------+ 
| 1 | Julia | 100 | email | 
+----+------------+-----------+-------+ 
| 2 | Eve  | 101 | email | 
+----+------------+-----------+-------+ 
| 3 | Max  | 102 | email | 
+----+------------+-----------+-------+ 

результат я хочу, чтобы это было:

+----+---------+--------+---------+------+--------+ 
| id | starter | worker | comment | date | status | 
+----+---------+--------+---------+------+--------+ 
| 1 | Julia | Max | qwe | date | 10 | 
+----+---------+--------+---------+------+--------+ 
| 2 | Eve | Julia | qwe | date | 10 | 
+----+---------+--------+---------+------+--------+ 

ответ

1

Проблема заключается вы присоединяетесь две таблицы без указания ALIAS на столе accounts вызывает неоднозначное состояние.

SELECT a.*, 
     b.username StarterName, 
     c.userName WorkerName 
FROM job_tbl a 
     INNER JOIN account b 
      ON a.starter = b.id 
     INNER JOIN account c 
      ON a.worker = c.ID 

Для дальнейшего получить больше знаний о соединяющую, любезно перейдите по ссылке ниже:

+1

Спасибо, что мне нужно. работает! – user840250

+0

приветствуется ': D' –

3

Вы не указав, который accounts экземпляр таблицы, чтобы использовать в качестве стартера или работника. Попробуйте следующее:

SELECT job_tbl.id, job_tbl.description, Starter.username AS starter, Worker.username AS worker, job_tbl.comment, job_tbl.date, job_tbl.status 
FROM job_tbl 
INNER JOIN accounts AS Starter ON job_tbl.starter = Starter.id 
INNER JOIN accounts AS Worker ON job_tbl.worker = Worker.id