MySQL。属性的水平显示
是否可以水平显示该属性 例如,我有这样的表格: 简单MySQL。属性的水平显示,mysql,sql,Mysql,Sql,是否可以水平显示该属性 例如,我有这样的表格: 简单 SELECT user.name, project.name FROM user LEFT JOIN project ON user.project_id = project.id; 给我 User #1,Project #1 User #2,Project #1 User #3,Project #2 有可能收到这样的结果吗?在一列中列出项目名称及其所有相关用户 Project #1 User #1 User #2 Project
SELECT user.name, project.name
FROM user
LEFT JOIN project ON user.project_id = project.id;
给我
User #1,Project #1
User #2,Project #1
User #3,Project #2
有可能收到这样的结果吗?在一列中列出项目名称及其所有相关用户
Project #1
User #1
User #2
Project #2
User #3
我认为您可以使用
UNION
查询和两个内联列来对输出进行排序,从而生成所需的输出
SELECT t.name
FROM
(
SELECT DISTINCT project.name AS name,
project.id AS id,
0 AS idx
FROM user
LEFT JOIN project
ON user.project_id = project.id
UNION ALL
SELECT user.name,
project.id,
1
FROM user
LEFT JOIN project
ON user.project_id = project.id
) t
ORDER BY t.id,
t.idx,
t.name
在表示层修复它。@jarlh我理解,但这几乎是不可能的。我正在处理遗留代码。这样的解决方法可行吗?它给了我两次“Project#1”。@D.R。我在
联合
子查询的前半部分使用了选择DISTINCT
,现在它似乎正在工作。