0
다음은 mySQL 쿼리입니다. 문제는 우리가이 주제 전에 텍스트 'ID'를 추가 할 수 있습니다 content.ID LIKE theme.ref
을 말한다 곳은 첫 번째 링크에mySQL JOIN 변수에 텍스트 추가
SELECT * FROM content LEFT JOIN theme ON content.ID LIKE theme.ref
WHERE content.status = 1 AND content.parent = 11 AND content.type = 'team'
ORDER BY content.position ASC
을 일치하도록하기 위해 theme.ref에 접두사와 접미사를 추가 할 필요가 있다는 것입니다. ref 다음에 ','. 이 작업을 수행 할 수 있습니까?
예 : 'ID'.theme.reg.','
분명히 작동하지 않습니다.
을하지만 쿼리가 비효율적 인 것 (theme.ref 와일드 카드 문자를 포함하지 않는 경우 content.ID = concat('ID',theme.ref,',')
의 것과 동일)
구조를 다시 작성할 필요가 없도록 구조를 다시 작성합니다. 나는 그것이 연결 때문에 천천히 걸린다. 그리고 JOIN 때문에가 아니냐? –
조인 술어에서 concat 사용으로 인해 비효율적 일 수 있습니다. 이러한 조인 조건을 사용하면 MySQL 엔진이 최적의 쿼리 플랜을 선택할 수있는 방법을 크게 제한합니다. –
a에서 b 로의 중첩 루프 (bx에서 인덱스 사용), b에서 a 로의 중첩 루프 (ax 인덱스 사용), 해시 조인 및 정렬 (자연스러운 조인이라고 함)은 ax = bx 조인 -merge join - RDBMS는 어떤 것을 선택하고 최적의 계획을 세울 수 있습니다. Join on a.x = F (b.x)는 좀 더 제한적입니다. F (b.x)에 인덱스를 가질 수 없기 때문에 b에서 a까지의 중첩 루프에서만 수행 할 수 있습니다 (a.x의 인덱스 사용). 대개 해시 조인과 정렬 - 병합 조인은 구현하기 어려우므로 대부분의 RDBMS에서이를 적용하지 못합니다. –