98 votes

MySQL : comment joindre des tables sur deux champs

J'ai deux tables avec date y id champs. Je veux faire une jointure sur les deux champs. J'ai essayé

JOIN t2 ON CONCAT(t1.id, t1.date)=CONCAT(t2.id, t2.date)

cela fonctionne, mais c'est très lent. existe-t-il une meilleure façon de procéder ?

167voto

womble Points 6477
JOIN t2 ON t1.id=t2.id AND t1.date=t2.date

37voto

Chad Birch Points 39087
JOIN t2 ON (t2.id = t1.id AND t2.date = t1.date)

26voto

Eugene Kaurov Points 43
SELECT * 
FROM t1
JOIN t2 USING (id, date)

peut-être devrez-vous utiliser INNEER JOIN ou où t2.id n'est pas nul si vous voulez que les résultats ne correspondent qu'aux deux conditions

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X