如果UserID == UserID,是否可以在同一列(在html表中)中显示由逗号(,)分隔的多个值(来自数据库中的不同行)? 例如:
数据库:
UserID | Skills
1 java
1 python
2 SQL
1 HTML
HTML表:
UserID | Skills
1 java, python, HTML
2 SQL
更新:因为使用GROUP_CONCAT
:
$user_project_sql = "SELECT user.UserID, user.Fname, user.Lname, user.JobRole, GROUP_CONCAT(skills.Description SEPARATOR ', ') as skills
FROM user
INNER JOIN userprojects ON user.UserID = userprojects.UserID
INNER JOIN projects ON userprojects.ProjectID = projects.ProjectID
INNER JOIN userskills ON user.UserID = userskills.UserID
INNER JOIN skills ON userskills.SkillID = skills.SkillID
INNER JOIN usertasks ON user.UserID = usertasks.UserID
INNER JOIN tasks ON usertasks.TaskID = tasks.TaskID
WHERE tasks.TaskID = '$Task'
GROUP BY UserID"
or die(mysqli_error($con));
我获得了两次打印的所有技能:
UserID | Skills
1 java, python, HTML, java, python, HTML
2 SQL
答案 0 :(得分:1)
尝试此查询:
select UserID,GROUP_CONCAT(Skills) as skills from table where UserID='YOU_USER_ID' group by UserID;
答案 1 :(得分:1)
听起来您想要查看GROUP_CONCAT
(http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat)
我认为你可以用
达到预期的效果SELECT UserID, GROUP_CONCAT(`Skills` SEPARATOR ", ") as `skills`
FROM `skillsTable`
WHERE `UserID` = ?
GROUP BY `UserID`
如果仅选择单个用户ID,则GROUP BY是可选的且不必要。例如,如果您执行WHERE UserID IN (. . . )
答案 2 :(得分:1)
GROUP_CONCAT(表达式)
此函数返回字符串结果,其中包含来自组的连接非NULL值。如果没有非NULL值,则返回NULL。完整语法如下:
<强> SQL:强>
SELECT UserID, GROUP_CONCAT(DISTINCT Skills ORDER BY Skills ASC SEPARATOR ', ') as Skills FROM table
这是一个根据技能字母对Skills
进行排序的查询。