[英]SELECT * in between MAX and second MAX id of a column WHERE another column equals a certain input
我有一个名为表orders
与(AO)列sid
和q1_requested_by
。 sid
列包含唯一的ID号,并随每个新输入递增。
q1_requested_by
在q1_requested_by
列中有一个值为ORDERS PROCESSED
的输入。
我想从表格中选择所有内容,该表格介于最新的ÒRDERS PROCESSED
输入和最新的一次ORDERS PROCESSED
输入之间。
我尝试了以下方法,但不起作用。 它什么也没选择。
SELECT * FROM orders
WHERE sid < (SELECT max(sid) FROM orders
WHERE q1_requested_by = 'ORDERS PROCESSED')
AND sid > (SELECT TOP 2 sid FROM orders
WHERE q1_requested_by = 'ORDERS PROCESSED'
ORDER BY sid DESC)
ORDER BY sid DESC
我该如何解决?
您好,您可以将限制添加到查询的第二部分。 请尝试以下方法:
SELECT * FROM orders
WHERE sid < (SELECT max(sid) FROM orders WHERE q1_requested_by = 'ORDERS PROCESSED')
AND sid > (SELECT TOP 2 sid FROM orders
WHERE q1_requested_by = 'ORDERS PROCESSED' ORDER BY sid DESC LIMIT 1)
ORDER BY sid DESC
首先,您将使用MySQL构造:
SELECT o.*
FROM orders o
WHERE o.sid < (SELECT max(sid)
FROM orders
WHERE q1_requested_by = 'ORDERS PROCESSED'
) AND
o.sid > (SELECT sid
FROM orders
WHERE q1_requested_by = 'ORDERS PROCESSED'
ORDER BY sid DESC
LIMIT 1, 1
)
ORDER BY o.sid DESC
它将起作用:)
SELECT * FROM orders
WHERE sid = (SELECT max(sid) FROM orders WHERE sid <>
(SELECT max(sid) FROM orders WHERE q1_requested_by = 'ORDERS PROCESSED'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.