SQL - Bagaimana untuk mendapatkan entri terkini antara dua jadual berbeza? (Tamp masa tidak disimpan)
P粉244155277
P粉244155277 2023-09-07 00:14:25
0
1
618

Saya sedang mengusahakan projek yang sedang dijalankan di mana saya sedang berusaha 引号, struktur pangkalan data tidak teratur dan saya tidak boleh membuat banyak perubahan pada skema pangkalan data untuk membetulkannya.

Dalam pangkalan data:

  • Dua jenis petikan dan disimpan dalam dua jadual berbeza.
  • Andaikan regular_quotespremium_quotes ialah dua meja.
  • Keadaannya tiada simpanan meja日期/时间,没有任何与created_at相关的列,也没有备用存储日期/时间
  • Saya kena semak jadual mana yang ada entry terbaru dari kedua-dua jadual ini.

Jadual 1 常规引号

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

Jadual 2 premium_quotes

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

Apa yang saya lakukan ialah:

  • Mencipta jadual baharurecent_quote_meta
  • mempunyai lajur berikut: idquote_idquote_typecreated_atupdated_at, deleted_at
  • Setiap kali petikan qny dibuat, saya menyimpannya dalam recent_quote_meta 中,并使用 quote_id dan menggunakan quote_id
  • Dari mana saya mendapat yang terkini quote_idquote_type dan berdasarkan ini saya mendapat dan memaparkan petikan sewajarnya

Tetapi masalahnya, mereka tidak mahu saya membuat sebarang perubahan pada pangkalan data. Dan saya rasa itu tidak boleh dilakukan dalam senario semasa.

Adakah terdapat cara untuk mendapatkan sebut harga terkini untuk jadual ini? Ia boleh menjadi petikan_biasa atau regular_quotespremium_quotes

Terima kasih!

P粉244155277
P粉244155277

membalas semua(1)
P粉956441054

Tanpa sebarang lajur cap masa, sebenarnya adalah mustahil untuk menentukan yang mana antara kedua-dua jadual tersebut mempunyai entri sebut harga terkini. Terdapat beberapa helah yang boleh kami cuba, tetapi situasi anda akan menentukan sama ada mereka boleh dipercayai.

Salah satu cara ialah anda boleh menyemak sama ada ID diperuntukkan mengikut susunan dan memandangkan anda mengetahui ID terkini dalam kedua-dua jadual, anda boleh membandingkannya untuk menentukan jadual yang mempunyai petikan terkini. Contohnya, jika jadual regular_quotes 表中最新的 id3,并且 regular_quotes 表中最新的 id >premium_quotes表为5,可以断定premium_quotes mempunyai petikan terkini.

SELECT MAX(id) AS latest_regular_quotes_id FROM regular_quotes;


SELECT MAX(id) AS latest_premium_quotes_id FROM premium_quotes;

Ini akan mengembalikan nilai ID tertinggi dalam setiap jadual. Anda boleh membandingkan kedua-dua nilai ini untuk menentukan jadual yang mempunyai petikan terkini, dengan id mempunyai nilai tertinggi.

Sebaik-baiknya, anda mungkin ingin memberitahu pentadbir untuk menyelesaikan isu ini.

Semoga ini berguna untuk anda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan