如何将行值转换为列?

时间:2018-01-31 13:05:36

标签: mysql phpmyadmin

我希望将unique values中的column作为rows,将columns unique values作为columns。我不确定这是否是正确的解释,所以我只是留下我想要发生的截图。对不起,它是匆忙制作的。

示例:

example

1 个答案:

答案 0 :(得分:0)

你需要基本上将表连接到自己。

您可以执行以下查询:

查询

SELECT chat.chat_id, chat.chat_user AS chat_user1, chat2.chat_user AS chat_user2
FROM chat as chat, chat as chat2
WHERE chat.chat_id = chat2.chat_id
AND chat.chat_user != chat2.chat_user
GROUP BY chat_id

将自己加入并检查所有chat_id组,并根据需要使用额外的列返回结果。

选择AS

重要的是,要更改列名,您可以选择column1 AS new_column1,column2 AS new_column2

如果您的列名称不明确,这一点尤其有用,当然,在将表格连接到自身时,您将会这样做。

WHERE / AND

这里我们首先检查chat_id是否相同所以所有等于14的chat_ids都返回,但是为了阻止它创建多行,我们告诉它忽略已经在第一次运行时放入chat_user2的chat_users代码。

GROUP BY

这会阻止它创建重复的数据行,并为每个chat_id返回一个结果

我认为你的桌子叫做聊天。如果没有用表名替换聊天