需要帮助 MySQL 查询。需要两个表的数据

Posted

技术标签:

【中文标题】需要帮助 MySQL 查询。需要两个表的数据【英文标题】:Need help MySQL query. Need data from two tables 【发布时间】:2016-09-13 04:24:59 【问题描述】:

我是 mysql 的初学者。

表 1:用户

ID   NAME
----------
1    XYZ
2    ABC

表 2:任务

ID   TASK_NAME   ASSIGNED_BY    ASSIGNED_TO
--------------------------------------------
1    task 1         1               2 
2    task 2         2               1 

我想要这个结果。

ID   TASK_NAME   ASSIGNED_BY    ASSIGNED_TO
--------------------------------------------
1    task 1         XYZ             ABC 
2    task 2         ABC             XYZ 

【问题讨论】:

如果您是 MySQL 初学者,请访问此链接 tutorialspoint.com/mysql/mysql-using-joins.htm 它将对您有更多帮助 然后,一旦您尝试了一些代码并且无法弄清楚,请回来寻求帮助并编辑您的问题。 对我来说非常像家庭作业。让我们知道您已经尝试过什么以及遇到了什么困难。 【参考方案1】:

这是一个简单的JOIN 任务:

SELECT t.ID, t.TASK_NAME, 
       u1.NAME AS ASSIGNED_BY,
       u2.NAME AS ASSIGNED_TO
FROM Task AS t
JOIN Users AS u1 ON t.ASSIGNED_BY = u1.ID
JOIN Users AS u2 ON t.ASSIGNED_TO = u2.ID

【讨论】:

如何在上面的查询中添加 where 条件? @aasimbairagdar 您可以将其添加到查询的底部。 @aasimbairagdar 很高兴我能提供帮助。如果它帮助您解决问题,请将此或任何其他答案标记为已接受。【参考方案2】:

您需要使用JOIN 来执行此操作。我使用INNER JOIN 请尝试以下查询。

SELECT t.ID, t.TASK_NAME, 
       u1.NAME AS ASSIGNED_BY,
       u2.NAME AS ASSIGNED_TO
FROM Task AS t
INNER JOIN Users AS u1 ON t.ASSIGNED_BY = u1.ID
INNER JOIN Users AS u2 ON t.ASSIGNED_TO = u2.ID

【讨论】:

以上是关于需要帮助 MySQL 查询。需要两个表的数据的主要内容,如果未能解决你的问题,请参考以下文章

对第二个表中不存在 ID 的两个表的 MySQL 查询优化

需要帮助使用在两个单独表的列之间进行算术运算的函数将列添加到一个表

mysql中两个大表之间的连接查询

需要帮助优化一个有趣的 MySQL 查询

mysql 查询表数据 除了某个字段SQL 如何写请帮助

需要帮助编写组合两个表的 SQL SELECT 语句