Mencari Selang Masa Bertindih antara Dua Jadual dalam SQL
Dalam pangkalan data dengan dua jadual yang mengandungi medan masa mula dan tamat, ia selalunya diperlukan untuk mengenal pasti baris di mana selang masa bersilang. Soalan ini menyediakan penyelesaian untuk mencari pertindihan sedemikian dengan cekap dalam SQL Server 2005 menggunakan klausa WHERE.
Penyelesaian:
Pertanyaan berikut boleh digunakan untuk mencari masa bertindih selang antara baris dalam jadual1 dan jadual2:
SELECT * FROM table1,table2 WHERE table2.start <= table1.end AND (table2.end IS NULL OR table2.end >= table1.start)
Penjelasan:
Pertanyaan menggunakan syarat JOIN untuk membandingkan selang masa daripada kedua-dua jadual. Klausa WHERE menggunakan dua syarat:
Klausa WHERE ini dengan berkesan menentukan sama ada selang masa baris 2 bersilang dengan selang masa baris 1. Dengan menggunakan gabungan, pertanyaan mendapatkan semula baris dengan cekap daripada kedua-dua jadual yang wujud pertindihan sedemikian.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Selang Masa Bertindih Antara Dua Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!