Rumah  >  Soal Jawab  >  teks badan

SQL - Bagaimana untuk mendapatkan entri terkini antara dua jadual berbeza? (Tamp masa tidak disimpan)

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:

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:

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粉244155277P粉244155277429 hari yang lalu582

membalas semua(1)saya akan balas

  • P粉956441054

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

    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.

    balas
    0
  • Batalbalas