在使用SQL的Access中有多个条件

时间:2016-01-27 02:20:18

标签: sql ms-access ms-access-2010

我想要表中最高女性的FirstName和LastName。

image of table

我尝试使用:

select FirstName, LastName
from actors
where  height = (select max(height) from actors) and gender = 'F';

但它不起作用。有人能告诉我它是如何完成的吗?

3 个答案:

答案 0 :(得分:2)

select * from <TABLE NAME> where gender = 'F'
and height = (SELECT max(height) from <TABLE NAME> where gender = 'F')

在Access 2013上测试。

答案 1 :(得分:0)

虽然我的sql很糟糕,但我认为这可以通过从子集中选择你想要的东西来解决 先选择一切

SELECT a.FirstName, a.LastName, a.height FROM actors AS a WHERE a.gender = 'F';

然后从该子集中选择所需的其他字段的最大值(高度)。

SELECT m.FirstName, m.LastName, max(m.height) FROM (SELECT.. AS a) AS m

然后根据需要过滤掉你想要的内容

SELECT f.FirstName, f.LastName FROM (SELECT..(SELECT..AS a) AS m) AS f

一起看起来像这样

SELECT f.FirstName, f.LastName FROM
 (SELECT m.FirstName, m.LastName, max(m.height) FROM
   (SELECT a.FirstName, a.LastName, a.height FROM
     actors AS a WHERE a.gender = 'F') AS m
  )as f; 

我承认它很复杂,但它在我的mysql中有效;)

编辑:很多人对此错误道歉,但我认为这是关于MySQL的。这是我的第一篇文章,我想我有点兴奋。我相信子集是基本的SQL。

答案 2 :(得分:0)

我认为这会奏效。

select FirstName, LastName
from actors
where  height = (select max(height) from actors where gender = 'F') and gender = 'F';