MySQL 두 필드에 테이블을 조인하는 방법


102

dateid필드 가있는 두 개의 테이블이 있습니다. 두 분야 모두에 참여하고 싶습니다. 나는 시도했다

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
기본적으로 느린 것은 concrete가 인덱스가없는 새로운 값을 계산하기 때문에 직접적인 조건이 더 빠르기 때문입니다. 이 쿼리가 다시 느려질 경우 인덱스가 있는지 확인하고 때로는 두 필드에 대해 하나의 인덱스를 만드는 것도 의미가 있습니다.
Eugene Kaurov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.