SQL - Comment obtenir la dernière entrée entre deux tables différentes ? (L'horodatage n'est pas stocké)
P粉244155277
P粉244155277 2023-09-07 00:14:25
0
1
588

Je travaille sur un projet en cours sur lequel je travaille 引号, la structure de la base de données n'est pas bien organisée et je ne peux pas apporter beaucoup de modifications au schéma de la base de données pour le corriger.

Dans la base de données :

  • Deux types de devis et enregistrés dans deux tableaux différents.
  • Supposons que regular_quotespremium_quotes soit deux tables.
  • La situation est qu'il n'y a pas de rangement pour les tables日期/时间,没有任何与created_at相关的列,也没有备用存储日期/时间
  • Je dois vérifier quelle table a la dernière entrée de ces deux tables.

Tableau 1 常规引号

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

Tableau 2 premium_quotes

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

Ce que j'ai fait c'est :

  • Créé une nouvelle tablerecent_quote_meta
  • comporte les colonnes suivantes : idquote_idquote_typecreated_atupdated_at, deleted_at
  • Chaque fois qu'un devis qny est créé, je le stocke dans recent_quote_meta 中,并使用 quote_id et j'utilise quote_id
  • Dont je reçois les dernières quote_idquote_type et sur cette base, j'obtiens et affiche les devis en conséquence

Mais le fait est qu'ils ne veulent pas que je modifie la base de données. Et je ne pense pas que cela soit possible dans le scénario actuel.

Existe-t-il un moyen d'obtenir les dernières cotations pour ces tables ? Cela peut être regular_quotes ou regular_quotespremium_quotes

Merci !

P粉244155277
P粉244155277

répondre à tous(1)
P粉956441054

Sans aucune colonne d'horodatage, il est en fait impossible de déterminer laquelle des deux tables contient la dernière entrée de cotation. Nous pouvons essayer quelques astuces, mais votre situation déterminera si elles sont dignes de confiance.

Une solution consiste à vérifier si les identifiants sont attribués dans l'ordre et puisque vous connaissez le dernier identifiant dans les deux tableaux, vous pouvez les comparer pour déterminer quelle table a le dernier devis. Par exemple, si le tableau regular_quotes 表中最新的 id3,并且 regular_quotes 表中最新的 id >premium_quotes表为5,可以断定premium_quotes contient les dernières cotations.

SELECT MAX(id) AS latest_regular_quotes_id FROM regular_quotes;


SELECT MAX(id) AS latest_premium_quotes_id FROM premium_quotes;

Ceux-ci renverront la valeur d’ID la plus élevée dans chaque table. Vous pouvez comparer ces deux valeurs pour déterminer quelle table contient les dernières cotations, id ayant la valeur la plus élevée.

Idéalement, vous souhaiterez peut-être demander à un administrateur de résoudre ce problème.

J'espère que cela vous sera utile.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal