我有两张桌子:
文档表(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
有什么想法吗?
答案 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 强>