Mysql与其他表连接用户表

时间:2014-04-16 12:21:36

标签: java mysql sql

我有两张桌子:

  

文档表(documentID,userID)和sers表(UserID,FirstName,LastName)。

例如

文件表:

documentID = 1 | userID = 2 | modifiedUser = 2
documentID = 3 | userID = 1 | modifiedUser = 1

用户表:

userID = 1 | firstName = Bob  | lastName = Hope
userID = 2 | firstName = John | lastName = Doe

我需要SQL查询来选择文档表中的所有列,但应该连接用户的名字和姓氏而不是userID

我的输出应该是:

documentID = 1 | userID = John Doe | modifiedUser = John Doe
documentID = 3 | userID = Bob Hope | modifiedUser = Bob Hope

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

更新:更新了查询以反映问题中的更改:

简单JOIN应该:

SELECT documentID, 
 concat(u.firstName,' ',u.lastName) AS userID,
 concat(mu.firstName,' ',mu.lastName) AS userID 
FROM document
JOIN user u ON (u.userID=document.userID)
JOIN user mu ON (mu.userID=document.modifiedUser);

答案 1 :(得分:0)

SELECT d.document_id, u.firstName||u.lastName AS 'user_id'
FROM document d JOIN user u
ON d.userID=u.userID;

这应该有用。

答案 2 :(得分:0)

  SELECT d.documentID, concat_ws(' ', u.firstName, u.lastName) AS userID 
    FROM document d, user u 
   WHERE u.userID = d.userID ;

答案 3 :(得分:0)

你需要这个:

SELECT A.documentID, 
CONCAT_WS(' ', B.firstName, B.lastName) AS userID 
FROM document  A, USER B 
WHERE B.userID = A.userID 
ORDER BY A.documentID;

输出应该是:

+----------+----------+
|documentID| userID   |
+----------+----------+
|   1      | jhon doe |
+----------+----------+
|   3      | bob hope |
+----------+----------+

更新:1

SELECT A.documentID, 
CONCAT_WS(' ', B.firstName, B.lastName) AS userID, 
CONCAT_WS(' ', B.firstName, B.lastName) AS modifiedUser  
FROM document  A, USER B 
WHERE B.userID = A.userID 
ORDER BY A.documentID;

输出如:

+----------+----------+------------+
|documentID| userID   |modifiedUser|
+----------+----------+------------+
|   1      | jhon doe |  jhon doe  |
+----------+----------+------------+
|   3      | bob hope |  bob hope  |
+----------+----------+------------+

<强> http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws