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

子查询中where子句中的两列

潘宝
2023-03-14
问题内容

我有一个查询:

SELECT s.period, s.year, s.amount 
FROM salaries s

我只想从salaries表中选择周期和年份等于的行:

SELECT p.period, p.years 
FROM periods p

我知道最简单的方法是使用连接,但是问题是-在应用程序中,我只能在后面添加一个子句 WHERE

因此,解决方案应该是:

SELECT s.period, s.year, s.amount 
FROM salaries s 
WHERE ...

那可能吗?

编辑: 结果应与以下相同:

SELECT s.period, s.year, s.amount 
FROM salaries s
  JOIN periods p ON s.period = p.period AND s.year = p.year

问题答案:

您可以为IN条件使用多个列:

SELECT s.period, s.year, s.amount 
FROM salaries s
where (s.year, s.period) in (select year, period from periods)

但是戈登的not exists解决方案可能更快。



 类似资料:
  • 问题内容: 我最近才刚开始使用SQLAlchemy,但仍无法解决某些概念。 归结为基本元素,我有两个这样的表(通过Flask-SQLAlchemy): 我将如何查询用户列表及其最新帖子(不包括无帖子的用户)。如果我使用的是SQL,则可以执行以下操作: 因此,我确切地知道“期望的” SQL可以达到我想要的效果,但是不知道如何在SQLAlchemy中“正确地”表达它。 编辑:如果很重要,我使用的是SQ

  • 问题内容: 谁能给我一些关于如何将这种子查询放入提示?(我正在使用 JPA 2.0 - Hibernate 4.x ) -第二个选择将始终获得单个结果或null。 问题答案: 尝试类似以下示例的操作来创建子查询: 请注意,由于附近缺少IDE,因此该代码尚未经过测试。

  • 问题内容: 将SELECT查询放在UPDATE查询的WHERE子句中时出现错误。 我的查询是这样的: AND错误将显示如下: “无法在FROM子句中指定目标表’m’进行更新” 问题答案: 实际上,您可以通过将其包装在子查询中来更新它(从而为结果创建临时表) 或使用 JOIN

  • 下面是我开始使用的代码,但我不确定该去哪里。看看这个问题的解决方案,我似乎需要根据下面的查询下载数据,然后在客户端对其进行排序。我似乎做不到的事

  • 问题内容: 是否可以执行这样的mysql查询? 我需要在一般的“ where”子句中使用子查询的结果。 问题答案: 您可以将其包装在子查询中,如下所示: