문제

시간을 고려하지 않고 같은 날짜를 기준으로 두 테이블에 가입 할 수 있습니까?

같은 것 :

... 약속에서 약속에 대한 판매에 가입 .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)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top