sqlite从两个表中选择并按限制排序

qfe3c7zg  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(233)
SELECT y.M_id,SUM(t.alarm_sum),y.yarn1,AVG(t.yarn1_in),SUM(t.yarn1_alarm)
FROM '111' t, yarn y 
WHERE t.date=date('now') AND y.M_id='111' 
ORDER BY t.row_id DESC 
LIMIT 5

我想从2表'111'和yarn中获取数据,但我只需要'111'中的最后5行数据。我运行了它,但是输出不受“111”表中5行的限制。需要改变什么?

nfg76nw0

nfg76nw01#

您可以使用子查询,例如。

select ...
from (select * from '111' order by row_id desc limit 5) t,
     yarn y
[...]

然而,我不清楚这有什么意义,也不清楚你想达到什么目的。
这里要做的是笛卡尔连接:从功能上说,数据库将选择t的所有行,y的所有行,创建两者的所有组合(因此它将创建t的第一行与y的所有行的组合,t的第二行与y的所有行的组合,…),然后它将根据您的条件进行过滤,最后进行排序和限制。
我很惊讶你得到的除了最后一排以外的任何东西。
(也叫专栏) row_id 在sqlite中似乎是个坏主意,因为它很容易与数据库本身的混淆 rowid ).

相关问题