【问题标题】:get rows from another mysql table depening on distinct value from another mysql table根据另一个 mysql 表中的不同值从另一个 mysql 表中获取行
【发布时间】:2021-11-05 08:01:31
【问题描述】:

我有两个 mysql 表。

用户信息

参考日志

现在,大多数列都不感兴趣。这就是我想要做的:

  1. 从参考日志中获取给定级别 ID 的唯一“created_by_user_name”。我可以通过以下查询来做到这一点,该查询返回 3 个唯一的用户名。

从 ReferenceScreenResultLog 中选择 DISTINCT log.created_by_user_name 记录 WHERE level="1"

但我想知道如何将它与 UserInformation 表连接起来,所以我从 UserInformation 获取行。正如我想要 UserInformation 表中的三行对应于我从上述查询中获得的这 3 个唯一用户名。 UserInformation 表中的user_name 列与referencelog 表中created_by_user_name 列相连。

【问题讨论】:

  • 现在您拥有所需的所有信息。只需添加 JOIN 即可使用用户信息列
  • 我知道,但这就是我苦苦挣扎的地方,对 mysql 不太适应
  • 这就是为什么有些人花了好几天时间编写手册,而其他人又花了几天时间编写教程并将它们放到互联网上供您使用。一旦你尝试编写一些代码,如果它不起作用,那就把它带到这里寻求帮助,
  • 请不要只要求我们解决问题或为您编写解决方案。欢迎初学者,但我们希望您付出一些努力在提出问题之前解决您自己的问题。 SO 不是免费的编码服务,尽管我们非常愿意帮助您解决您编写的代码的问题。
  • 很抱歉,我确实尝试编写 SQL 查询来从一张表中找到不同的用户名。我在问题中提到了它。你看到了吗?

标签: mysql hibernate mysql6


【解决方案1】:

假设这两个表是通过usr.id = log.created_by
连接的 您可以通过这种方式使用连接

SELECT DISTINCT usr.first_name, log.created_by_user_name 
FROM ReferenceScreenResultLog log 
INNER JOIN UserInformation usr on usr.id = log.created_by 
WHERE level="1"

或对于所有 usr 行内容

SELECT DISTINCT usr.*, log.created_by_user_name 
FROM ReferenceScreenResultLog log 
INNER JOIN UserInformation usr on usr.id = log.created_by 
WHERE level="1"

【讨论】:

  • 这正是我想要的。但是是否可以从 usr 获取整行内容,而不仅仅是 first_name 和 created_by_user_name?
  • 是的,我想通了。感谢您的帮助;
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
  • 2012-09-05
  • 1970-01-01
相关资源
最近更新 更多