当前位置: 首页 > 面试题库 >

一条语句中有两个选择语句

松骏俊
2023-03-14
问题内容

我基本上有两个名为images和的表users。该images表具有以下字段:

i_id | s_id | u_id | name | filename |

u_id是表中u_id字段的外键users,其中包含以下字段:

u_id | username | password | email |

我正在运行这样的查询:

SELECT s_id, u_id, name, filename, filesize FROM images WHERE name = 'fYhWId'

u_id除其他事项外,这将返回用户的。但是我想返回用户的用户名,而不是他们的u_id。因此,基本上,在该SELECT语句中,我还想运行:

SELECT username FROM users WHERE u_id = 1

我可以为此使用两个查询,但是我试图减少我的应用程序运行的查询,而且我知道有一种方法可以将其组合成一个查询,但是我只是不知道:<

有人知道答案吗?谢谢!


问题答案:
SELECT username FROM users WHERE u_id = (SELECT TOP 1 u_id FROM images WHERE name = 'fYhWId')

或者

SELECT username FROM users WHERE u_id IN (SELECT u_id FROM images WHERE name = 'fYhWId')

或者

SELECT username,  s_id, images.u_id, name, filename, filesize 
FROM images 
INNER JOIN users on images.u_id = users.u_id
WHERE name = 'fYhWId'


 类似资料:
  • 问题内容: 我有一张调查答案表,类似: 并且我想创建一个查询,该查询将为我提供该表的结果摘要,从而允许我设置相关的日期范围。我下面的声明非常有效: 但是我不确定是否可以做得更好,以及在哪里添加日期范围过滤功能。 问题答案: 来自多刺的诺曼的第一个查询将给出这样的结果: 仅将几组不同的结果分组。我假设您想按问题将是/否的总数分类。在这种情况下,您必须执行以下操作: 结果:

  • 问题内容: 我在C#项目中将SQLServer用于故障排除程序,并且我有一个包含ID,Question,QuestionId,Solution和Rank的表。我希望有一个问题的多个解决方案,并且程序将选择排名最高的解决方案,该解决方案仅由最高的数字来选择,该数字在每次正确时都会递增。为此,我有以下SQL语句: 当我只有一个可用的解决方案时,它可以很好地工作,但是当我有多个解决方案时,它却不能。 问

  • 问题内容: 我正在用php(mysql)生成报告, 例如: 这样我有12张桌子。 我可以在单个查询中做到吗。如果我做到了?过程变慢了吗? 问题答案:

  • 问题内容: 有没有一种方法可以在SQL中同时选择一列和其他列的总和? 例子: 问题答案: 尝试添加GROUP BY

  • 问题内容: 我正在浏览tour.golang.org中的示例,并且遇到了我不太了解的这段代码: 我了解通道工作的基础知识,但是我没有得到的是上述select语句的工作方式。教程中的说明说: “ select语句使goroutine等待多个通信操作。一个select阻塞直到它的一种情况可以运行,然后它执行该情况。如果有多个就绪,它将随机选择一个。” 但是案件如何执行?据我所知,他们在说: 案例:发送

  • 问题内容: 刚尝试去最近。我想知道如果您有一条select语句等待在几个通道上进行通信,并且如果消息同时在两个或多个通道上出现,将会发生什么情况。如果所有消息都同时发出,那么select将如何确定接受哪个通道? 谢谢! 问题答案: 从规格: 如果可能发生多种情况,则将做出统一的伪随机选择,以决定执行哪个单一通信。 因此,选择是不确定的。