Alors celle là, je pense qu'on vous l'a jamais faite
Voilà, j'ai une table "history" (toujours sur le soft de prog musicale), avec dedans :
artist, title, duration, date_played, et quelques autres infos qui ne nous intéressent pas ici.
Malheureusement, l'information la plus importante, l'ID de la musique, n'est pas enregistré.
Pour le retrouver, je joins la table "songs", par l'artiste et le titre.
Le résultat n'est pas mal mais pas pleinement satisfaisant où si il y a des doubles dans songs, bah ils vont ressortir.
Je me dis "Bah ajoute date_played dans la jointure, puisque dans la table songs, c'est aussi écrit".
Donc ajout, mais curieux, quelques musiques sortent en ID null .
En cherchant, je constate qu'il y a pour quelques musiques, une seconde d'écart entre le date_played de l'history et le date_played de la table songs.
Forcément, la jointure ne se fait donc pas, et je récupère pas mon ID.
Est-il possible de faire une jointure dans le genre :
Code : Tout sélectionner
SELECT blablabla FROM history
LEFT JOIN songs ON ( difference entre songs.date_played et history.date_played ) < 3 secondes Edit : C'est en écrivant la fin du message que la (petite) lampe s’est allumée, sans vraiment y croire (j'attendais en beau message d'erreur mais en fait non) :
Code : Tout sélectionner
LEFT JOIN songs ON (( songs.date_played - history.date_played < 3) AND ( history.date_played - songs.date_played < 3)) Voilà, si ca peut servir à d'autres membres