簡體   English   中英

SELECT *在一列的MAX和第二個MAX ID之間,而另一列等於某個輸入

[英]SELECT * in between MAX and second MAX id of a column WHERE another column equals a certain input

我有一個名為表orders與(AO)列sidq1_requested_by sid列包含唯一的ID號,並隨每個新輸入遞增。

q1_requested_byq1_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM