ChatGPT解决这个技术问题 Extra ChatGPT

MySQL how to join tables on two fields

I have two tables with date and id fields. I want to join on both fields. I tried

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

that works, but it is very slow. is there a better way to do this?


w
womble
JOIN t2 ON t1.id=t2.id AND t1.date=t2.date

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

t
tschumann
SELECT * 
FROM t1
JOIN t2 USING (id, date)

perhaps you'll need to use INNER JOIN or where t2.id is not null if you want results only matching both conditions


Basically, slowness is because concrete calculates new values that has no indexes so direct conditions should be faster. if even this query would be slow again, check is indexes exists, and sometimes creation one index for 2 fields also makes sense.