首页  >  问答  >  正文

SQL - 如何获取两个不同表之间的最新条目? (时间戳没有被存储)

我正在开发一个正在进行的项目,其中我正在处理引号,数据库结构组织得不好,我无法对数据库架构进行太多更改来修复它。

在数据库中:

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

我所做的是:

但情况是,他们不希望我对数据库进行任何更改。而且我认为这无法在当前的场景中完成。

有没有办法可以获取这些表的最新报价?它可以是 regular_quotespremium_quotes

谢谢!

P粉244155277P粉244155277429 天前581

全部回复(1)我来回复

  • P粉956441054

    P粉9564410542023-09-07 15:52:41

    如果没有任何时间戳列,实际上无法确定两个表中哪一个具有最新的报价条目。我们可以尝试一些技巧,但您的情况将决定它们是否值得信任。

    一种方法是,您可以检查 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 的值最高。

    理想情况下,您可能需要告诉管理员解决此问题。

    希望这对您有用。

    回复
    0
  • 取消回复