Maison >base de données >tutoriel mysql >Comment trouver des intervalles de temps qui se chevauchent entre deux tables SQL ?
Recherche d'intervalles de temps qui se chevauchent entre deux tables en SQL
Dans une base de données comportant deux tables contenant des champs d'heure de début et de fin, il est souvent nécessaire pour identifier les lignes où les intervalles de temps se croisent. Cette question fournit une solution pour trouver efficacement de tels chevauchements dans SQL Server 2005 à l'aide d'une clause WHERE.
Solution :
La requête suivante peut être utilisée pour trouver le temps de chevauchement intervalles entre les lignes du tableau 1 et table2 :
SELECT * FROM table1,table2 WHERE table2.start <= table1.end AND (table2.end IS NULL OR table2.end >= table1.start)
Explication :
La requête utilise une condition JOIN pour comparer les intervalles de temps des deux tables. La clause WHERE emploie deux conditions :
Cette clause WHERE détermine efficacement si l'intervalle de temps de la ligne 2 croise l'intervalle de temps de la ligne 1. En utilisant une jointure, la requête récupère efficacement les lignes. des deux tableaux où de tels chevauchements existent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!