SQL - 如何取得兩個不同表之間的最新條目? (時間戳沒有被儲存)
P粉244155277
P粉244155277 2023-09-07 00:14:25
0
1
610

我正在開發一個正在進行的項目,其中我正在處理引號,資料庫結構組織得不好,我無法對資料庫架構進行太多更改來修復它。

在資料庫中:

  • 兩種類型的報價並保存在兩個不同的表中。
  • 假設 regular_quotespremium_quotes 是兩個表。
  • 情況是,沒有一個表格儲存日期/時間,沒有任何與created_at相關的列,也沒有備用儲存日期/時間
  • 我必須從這兩個表中檢查哪個表具有最新條目。

表1 常規引號

id | name | quoteno | status  | .....|
------------------------------------------
1  | name1| RQ-909099 | pending  | .....|
2  | name2| RQ-800099 | pending  | .....|
3  | name3| RQ-965099 | approved | .....|

表2 premium_quotes

#
id | name | quoteno | status  | .....|
------------------------------------------
1  | name1| PQ-209099 | pending  | .....|
2  | name2| PQ-300099 | pending  | .....|
3  | name3| PQ-965099 | pending  | .....|

我所做的是:

  • 建立了一個新表recent_quote_meta
  • #具有以下:idquote_idquote_typecreated_atupdated_at, deleted_at
  • 每當建立 qny 報價時,我都會將其儲存在 recent_quote_meta 中,並使用 quote_id
  • #從中我得到了最近的quote_idquote_type,基於此我正在相應地獲取和顯示報價

但情況是,他們不希望我對資料庫進行任何更改。而且我認為這無法在當前的場景中完成。

有沒有辦法可以取得這些表格的最新報價?它可以是 regular_quotespremium_quotes

#謝謝!

P粉244155277
P粉244155277

全部回覆(1)
P粉956441054

如果沒有任何時間戳列,實際上無法確定兩個表中哪一個具有最新的報價條目。我們可以嘗試一些技巧,但您的情況將決定它們是否值得信任。

一種方法是,您可以檢查 ID 是否按順序分配,並且由於您知道兩個表中的最新 ID,因此您可以比較它們以確定哪個表具有最新報價。例如,如果regular_quotes 表中最新的id3,並且regular_quotes 表中最新的id# > premium_quotes表為5,可以斷定premium_quotes表中有最新的報價。

SELECT MAX(id) AS latest_regular_quotes_id FROM regular_quotes;


SELECT MAX(id) AS latest_premium_quotes_id FROM premium_quotes;

這些將傳回每個表中的最高 ID 值。您可以比較這兩個值來確定哪個表具有最新報價,其中 id 的值最高。

理想情況下,您可能需要告訴管理員解決此問題。

希望這對您有用。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板