[英]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.