[英]SELECT statement with multiple WHERE criteria (MS-Access)
下面是示例数据:
c1 c2 c3 c4 c5
1 a1 a 1 1
2 a2 a 2 1
3 a3 a 3 1
4 a4 a 4 1
5 b1 b 1 1
6 b2 b 2 1
7 b3 b 3 1
8 b4 b 4 1
9 a1 c 3 1
我想获得以下详细信息:
c1 c2 c3 c4 c5
1 a1 a 1 1
5 b1 b 1 1
9 a1 c 3 1
C1
是主键,标准是针对任何给定的 unique(c2),其中 c4 是最低的,我想返回该行的内容(所有 5 列)。
尝试这个:
SELECT t1.*
FROM Table1 t1
INNER JOIN
(
SELECT c3, MIN(c4) c4
FROM Table1
GROUP BY c3
) t2 ON t1.c3 = t2.c3 ANd t1.c4 = t2.c4
更新: 1在 SQL 中,返回的结果是一个集合(除非您指定ORDER BY
子句,否则在这种情况下它是一个游标),其中的顺序是不保证的。 这是一个标准。 如果要保证特定顺序,则应使用 ORDER BY 子句。 在您的情况下,不能保证结果像1 5 9
一样排序。 改为添加ORDER BY c1
。
ORDER BY
子句在某些情况下可能很重要,例如,如果要获取前三行或最大行,在这种情况下您必须指定ORDER BY
子句。
所以如果你想保留一个特定的订单,你必须指定一个ORDER BY
。
1正如@Fahim Parker 所指出的,请参阅下面的评论。
select c1,c2,c3,c4,c5
from table
where c4= (select min(c4) from table as f where f.c4 = table.c4);
我希望有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.