mysql中的子查询将一列用于两个不同的结果

Posted

技术标签:

【中文标题】mysql中的子查询将一列用于两个不同的结果【英文标题】:Subquery in mysql to use one column for two different results 【发布时间】:2014-10-13 18:28:45 【问题描述】:

我有一个用户表和一个编辑表(显示谁对自己或其他人的个人资料进行了更改)。 在edits 表中,editor 和editee 使用他们的userid 列出,这是users 表中的唯一ID。

我想创建查询: 从 users 中选择 users.username(编辑者)、users.username(编辑者) users.id 上的内部连接编辑 =edits.editee_id

如何创建子查询来提取编辑器的名称?

谢谢

【问题讨论】:

【参考方案1】:

您需要加入users 表两次。

SELECT whatever, 
       editor.username AS editor_username, 
       editee.username AS editee_username
  FROM edits
  JOIN users AS editor ON edits.editor_id = editor.id
  JOIN users AS editee ON edits.editee_id = editee.id

看看发生了什么?您使用users 表两次,并在每次使用时为其赋予不同的别名。

【讨论】:

谢谢,奥利!这非常有效!当我加入另外两个表时,我需要习惯将 users 表称为 editor 或 editee。

以上是关于mysql中的子查询将一列用于两个不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL基础九--子查询和连接

MySQL的sql语句如何将一列数据拼接成一个字符串?

MySQL子查询(SubQuery)

查询以连接 MySQL 中的两个 json 数组?

MySQL的子查询中FROM和EXISTS子句的使用教程

mysql的子查询中有统计语句 我该如何优化