Як з'єднати таблиці на двох полях


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 не є нульовим, якщо ви хочете, щоб результати відповідали лише обом умовам


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