Kumpulan MYSQL mengikut nilai terakhir tetapi bersyarat
P粉037450467
P粉037450467 2023-09-14 15:37:56
0
1
345

Saya akan terangkan keadaan saya. MySQL 5.7

Saya mempunyai 2 jadual: Pendaftaran dan Mudah Alih. Kedua-dua jadual ini mempunyaiIDMovementpersamaan supaya saya boleh menyertainya

Soalan saya: Saya perlu mengumpulkan mengikut lajurRegistry(iaitu lajur varchar) dan saya perlu menyemak MAXIDMovement. Dalam baris ini, terdapat satu lagi lajur yang dipanggilIDCausal. Langkau jika MAXIDMovementpadaIDCasualberbeza daripada 21. Jika tidak, kembalikan baris itu.

Saya akan berikan contoh perkara yang saya lakukan:

SELECT m.IDMovement, mo.IDCausal, m.Registry FROM registry m JOIN movement mo ON m.IDMovement = mo.IDMovement WHERE m.Registry = "2SST0160"

P.S. DI MANA hanya contoh, saya perlu menanyakan setiap pendaftaran.

Nilai pulangan pendaftaran 2SST0160 ialah:

IDMovement IDCausal Registry 5550 21 2SST0160 9817 5 2SST0160

Dalam contoh, MAX IDMovement ialah 9817, tetapi IDCausal ialah 5, jadi hasil jangkaan pertanyaan dalam contoh ini ialah TIADA APA-APA. Jika IDCausal ialah 21, hasil yang dijangkakan hanyalah baris 21. Untuk setiap pendaftaran, saya menjangkakan hasilnya adalah 0 atau 1 baris setiap pendaftaran.

Semoga saya menjelaskannya, terima kasih atas bantuan anda!

P粉037450467
P粉037450467

membalas semua (1)
P粉165522886
WITH newtable AS ( SELECT m.IDMovement, mo.IDCausal, m.Registry FROM registry m JOIN movement mo ON m.IDMovement = mo.IDMovement WHERE m.Registry = '2SST0160' ) SELECT * FROM newtable WHERE (SELECT IDCausal FROM newtable ORDER BY IDMovement DESC LIMIT 1) = 21 ORDER BY IDMovement DESC LIMIT 1;
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!