多表MySQL连接,我希望加入一个特定的表两次


Multiple Table MySQL Join where i wish to join 1 particular table twice

我有以下表在我的数据库中记录用户错误作为日志,所以我可以看到谁犯了错误,在什么时间。

日志、用户、错误类型和时间段。

用户包含

id |名称
1大卫
2标记
3达伦。

errortype包含
id | typeoferror
1错误类型1
2错误类型2
3 errortype 3

timeperiod包含
id | period
1 7 am-11am
2上午11点至下午3点
3 3pm - 7pm
4 7 pm-11pm

和log包含

id | user | date | time | staff | typeofmiss | timeperiod | dateoferror | notes
1 |1 |1/1/15|11:23 | 2 | 2 | 3 |1/1/15| blah

我希望用户列和员工列都链接到用户表和typeofmiss列链接到errortype列和时间段列链接到时间段表,以便当我运行查询时,它将返回:

1 - David - 1/1/15 - 11:23 - Mark - errortype 2 - 3pm-11pm - 1/1/15 - blah

我已经设法获得一个查询部分工作,但我不能从用户表中获得链接数据两次,即对于用户列和员工列,它为两列返回相同的名称。是否有一种方法来让这个工作,或者我必须得到的数据出来,然后改变数字的名称使用php或什么?

谢谢

您需要为表指定别名,然后指定要选择的(别名)列。

SELECT 
    a.id, a.user, a.date, b.name AS user_name, c.name AS staff_name, d.typeoferror
FROM 
    log AS a
JOIN 
    users AS b ON a.user = b.id 
JOIN 
    users AS c ON a.staff = c.id
JOIN 
    errortype d ON a.typeofmiss = d.id
https://dev.mysql.com/doc/refman/5.1/en/join.html