SQL - Wie erhalte ich den neuesten Eintrag zwischen zwei verschiedenen Tabellen? (Der Zeitstempel wird nicht gespeichert)
P粉244155277
P粉244155277 2023-09-07 00:14:25
0
1
587

Ich arbeite an einem laufenden Projekt, an dem ich arbeite 引号, die Datenbankstruktur ist nicht gut organisiert und ich kann nicht viele Änderungen am Datenbankschema vornehmen, um das Problem zu beheben.

In der Datenbank:

  • Zwei Arten von Angeboten und in zwei verschiedenen Tabellen gespeichert.
  • Angenommen, regular_quotespremium_quotes sind zwei Tische.
  • Die Situation ist, dass es keinen Tischspeicher gibt日期/时间,没有任何与created_at相关的列,也没有备用存储日期/时间
  • Ich muss prüfen, welche Tabelle den neuesten Eintrag aus diesen beiden Tabellen hat.

Tabelle 1 常规引号

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

Tabelle 2 premium_quotes

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

Was ich getan habe ist:

  • Eine neue Tabelle erstelltrecent_quote_meta
  • hat die folgenden Spalten: idquote_idquote_typecreated_atupdated_at, deleted_at
  • Immer wenn ein QNY-Angebot erstellt wird, speichere ich es in recent_quote_meta 中,并使用 quote_id und verwende quote_id
  • Davon erhalte ich das Neueste quote_idquote_type und auf dieser Grundlage erhalte und zeige ich die entsprechenden Angebote an

Aber die Sache ist die: Sie wollen nicht, dass ich irgendwelche Änderungen an der Datenbank vornehme. Und ich glaube nicht, dass das im aktuellen Szenario möglich ist.

Gibt es eine Möglichkeit, die neuesten Angebote für diese Tische zu erhalten? Es kann regular_quotes oder regular_quotespremium_quotes

sein

Danke!

P粉244155277
P粉244155277

Antworte allen(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 的值最高。

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

希望这对您有用。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage