MySQL- 날짜에 따라 가입하십시오
문제
시간을 고려하지 않고 같은 날짜를 기준으로 두 테이블에 가입 할 수 있습니까?
같은 것 :
... 약속에서 약속에 대한 판매에 가입 .date = sales.date ...
유일한 문제는 DateTime 필드이므로 날짜 만보고 시간을 무시하고 있는지 확인하고 싶습니다.
해결책
당신은 다음과 같이 할 수 있습니다 :
FROM appointments
LEFT JOIN sales ON DATE(appointments.date) = DATE(sales.date)
그러나 나는 그것이 색인을 사용할 수 없을 것이라고 확신합니다. 그래서 매우 느릴 것입니다.
각 테이블에 날짜 열을 추가하는 것이 좋습니다.
다른 팁
ON 절은 임의의 조건부 표현식을 수용하므로 비교하기 전에 양쪽에서 날짜 정규화를 수행 할 수 있지만 상당한 성능 페널티를 나타냅니다.
예,하지만 계산 된 표현식에 결합해야합니다. 이렇게하면 쿼리를 삭제할 수 없게 만들어 (색인을 사용할 수 없음) 테이블 스캔이 생성됩니다 ...
나는 datetime 값에서 시간을 벗기기 위해 mysql의 구문을 모르지만, 그냥 쓰기
FROM appointments a
LEFT JOIN sales s
ON StripTime(s.date) = StripTime(a.date)
제휴하지 않습니다 StackOverflow