est-il possible de rejoindre deux tables en fonction de la même date, de ne pas affecter à temps? p>
quelque chose comme: p>
... de rendez-vous à gauche rendez-vous.date = vente.date ... p> blockQuote>
Le seul problème est qu'il s'agit d'un champ DateTime, alors je veux m'assurer qu'il ne s'agit que de la date et de l'ignorance du temps p>
3 Réponses :
La clause ON Accepte une expression conditionnelle arbitraire, vous pouvez donc effectuer la normalisation de la date des deux côtés avant de comparer, mais elle devrait représenter une pénalité de performance significative. P>
Oui, mais vous devez vous joindre à une expression calculée, qui élimine le temps à partir des valeurs de colonne DateTime. Cela rendra la requête non sargable (il ne peut pas utiliser un index) afin de générer une numérisation de table ...
Je ne connais pas la syntaxe dans MySQL pour dépasser la durée d'une valeur DateTime, mais quoi que ce soit Écrivez simplement P>
FROM appointments a
LEFT JOIN sales s
ON StripTime(s.date) = StripTime(a.date)
Vous pouvez le faire comme ceci:
FROM appointments LEFT JOIN sales ON DATE(appointments.date) = DATE(sales.date)
Même discussion sur votre problème - Stackoverflow.com/q/48590120/4050261