我有两个表:t1(id, ticket)
和t2(id, value)
。
我想从t1中选择具有最小值的票证,而不使用聚合函数(MIN(。我必须使用ANY或ALL、EXIST或IN。Value是一个数字。
这两个表是根据id链接的。
有人能帮我吗?非常感谢。
SELECT ticket
FROM t1
WHERE id= (SELECT id FROM t2);
如果数据库是Oracle10g+或MySQL8+,则可以使用DENSE_RANK()
等分析函数
SELECT ticket
FROM
(
SELECT t1.*, DENSE_RANK() OVER (PARTITION BY t2.ID ORDER BY t2.VALUE) AS dr
FROM t1
JOIN t2
ON t2.id = t1.ID
)
WHERE dr = 1;
这样做:
select t1.tickets from t1,t2
where t1.id-t2.id and t1.id in (select id from t2 where
value in (select min(value) from t2));