2011-04-05 57 views
0

我很难理解如何通过mysql查询显示记录集,这将在历史表中显示两个不同的“真实”用户名它具有多个用户标识的列(即通过用户标识创建,并分配给用户标识) - 我可以通过JOIN获得其中的一个,但我如何联合等显示两者,因为它们可能会是不同的用户名?其他一些技巧?它是通过SQL或其他函数/循环?我可以使用JOIN获取用户名,createdbyUserID和在单个mysql查询中分配给用户ID的两个用户名

目前:

SELECT nxt_act_dev_hist.Created, nxt_act_dev_hist.assignedtoUserID, 
     nxt_act_dev_hist.createdbyUserID, nxt_user.username 
FROM nxt_act_dev_hist 
JOIN nxt_user 
ON nxt_act_dev_hist.createdbyUserID=nxt_user.UserID 

在这里我是新手,如果你不能告诉。

回答

2

您可以加入同一个表两次,这样的:

select 
    -- some other fields 
    createdByUser.UserName as CreatedByUserName, 
    assignedtoUser.UserName as AssignedToUserName 
from 
    nxt_act_dev_hist 
     JOIN nxt_user as createdByUser 
     ON nxt_act_dev_hist.createdbyUserID = createdByUser.UserID 
     JOIN nxt_user as assignedtoUser 
     ON nxt_act_dev_hist.createdbyUserID = assignedtoUser.UserID 

我不是一个MySQL的家伙,但应该工作。

+0

这很棒,让我走上正轨!但是,mysql语法要求连接AS如下所示:JOIN nxt_user AS createdByUser ON nxt_act_dev_hist.CreateUserID = createdByUser.UserID - 因为在包含AS createdByUser等后,mysql将无法识别nxt_user原始表。非常棒的帮助。 – Chuck 2011-04-05 20:22:00

+0

但当然,我编辑了答案。 – 2011-04-05 21:29:39

相关问题