mySQL: 쿼리가 계속 로드됩니다.
저는 4개의 테이블을 같이 합치고 싶습니다.한 개의 테이블은 A 데이터베이스에서 온 것이고, 다른 세 개의 테이블은 B 데이터베이스에서 온 것입니다.다음 쿼리를 실행하면 오류나 결과가 보이지 않고 컴퓨터가 계속 로드됩니다.제 질문은 다음과 같습니다.
SELECT tableA.ts, tableA.voltage, tableB.Day0, tableC.Day0, tableD.Day0 FROM databaseA.tableA \
-> INNER JOIN databaseB.tableB ON tableB.ts \
-> INNER JOIN databaseB.tableC ON tableC.ts \
-> INNER JOIN databaseB.tableD ON tableD.ts\
-> BETWEEN tableA.ts - INTERVAL 50 SECOND AND tableA.ts + INTERVAL 50 SECOND
SQL을 처음 접하기 때문에 쿼리 설계가 합리적인지, 쿼리에 문제를 일으킬 수 있는 문제가 있는지(Non-stop loading) 묻고 싶었습니다.
현재 쿼리의 복잡성은 여러 데이터베이스에서 여러 테이블을 함께 결합해야 하는 데서 비롯됩니다.이러한 테이블이 결합해야 하는 공통점은 ts(타임스탬프)에 있습니다.추가했습니다.BETWEEN tableA.ts - INTERVAL 50 SECOND AND tableA.ts + INTERVAL 50 SECOND위의 쿼리 설계에서 테이블 사이의 타임스탬프가 몇 초 정도 꺼질 수 있기 때문입니다.
댓글을 달기엔 좀 긴데요.
당신의.ON조건이 올바르지 않습니다.당신은 테이블 사이에서 데카르트 제품을 하고 있습니다.
ON조건은 두 개(또는 그 이상)의 테이블 간의 부울 비교여야 합니다.따라서 표현식은 다음과 같이 표시됩니다.
ON tableB.ts = . . .
(균등성이 정상 연산자가 됩니다.)
MySQL은 다른 타입을 부울런으로 변환할 것입니다.숫자의 경우 0은 "false"로 간주되고 그 외의 모든 것은 "true"로 간주됩니다(NULL으스스한NULLs)아, 아.
그래서:
ON tableB.ts
허용됩니다.하지만 이는 정말로 단지 테스트일 뿐입니다.
ON tableB.ts <> 0
언급URL : https://stackoverflow.com/questions/48598399/mysql-query-just-keeps-loading
'programing' 카테고리의 다른 글
| C 함수 프로토타입에 파라미터 이름을 입력하시겠습니까? (0) | 2023.10.06 |
|---|---|
| jQuery 키누름 화살표 키 (0) | 2023.10.06 |
| 최대 절전 모드 주석이 있는 mysql(기본적으로 해당 타임스탬프)에서 Java 날짜를 DATTIME에 매핑하려면 어떻게 해야 합니까? (0) | 2023.10.06 |
| JS 클라이언트 측 Exif 방향:JPEG 이미지 회전 및 미러링 (0) | 2023.10.06 |
| 자바스크립트 - 파일 입력 컨트롤에서 파일명을 추출하는 방법 (0) | 2023.10.06 |