2013-03-14 96 views
1

嗨我試圖做幾個INNER JOIN查詢,我的錯在哪裏?MySQL,第二個INNER JOIN

SELECT job_tbl.id,accounts.username AS起動機,accounts.username AS工人,job_tbl.comment,job_tbl.date,job_tbl.status

FROM job_tbl

INNER JOIN帳戶ON 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

的問題是你沒有在表accounts指定ALIAS造成不確定狀態連接兩個表。

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 2013-03-14 12:32:27

+0

不客氣':D' – 2013-03-14 12:32:52

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