MySQL, как объединить таблицы по двум полям


102

У меня есть две таблицы с dateи idполя. Я хочу работать в обоих направлениях. Я попытался

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

это работает, но очень медленно. Есть лучший способ сделать это?

Ответы:




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

возможно, вам нужно будет использовать INNEER JOIN или где t2.id не равно null, если вы хотите, чтобы результаты соответствовали только обоим условиям


1
По сути, медлительность связана с тем, что бетон вычисляет новые значения без индексов, поэтому прямые условия должны быть быстрее. если даже этот запрос снова будет медленным, проверьте, существуют ли индексы, и иногда также имеет смысл создание одного индекса для 2 полей.
Евгений Кауров
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.