嗨我试着用情侣INNER JOIN做查询,我的错在哪里?
SELECT job_tbl.id,accounts.username AS starter,accounts.username AS worker,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 table here:
+----+---------+--------+---------+------+--------+
| 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 |
+----+---------+--------+---------+------+--------+
答案 0 :(得分: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
答案 1 :(得分: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
要进一步了解联接,请访问以下链接: