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行的限制。需要改变什么?
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 ).
row_id
rowid
1条答案
按热度按时间nfg76nw01#
您可以使用子查询,例如。
然而,我不清楚这有什么意义,也不清楚你想达到什么目的。
这里要做的是笛卡尔连接:从功能上说,数据库将选择t的所有行,y的所有行,创建两者的所有组合(因此它将创建t的第一行与y的所有行的组合,t的第二行与y的所有行的组合,…),然后它将根据您的条件进行过滤,最后进行排序和限制。
我很惊讶你得到的除了最后一排以外的任何东西。
(也叫专栏)
row_id
在sqlite中似乎是个坏主意,因为它很容易与数据库本身的混淆rowid
).