이 mysql 쿼리에 문제가 있습니다. mysql이 너무 긴 쿼리
INSERT INTO traduction
(traduction.`id`,traduction.`traduction`,traduction.`language`,traduction.`type`)
(
SELECT cities.id,cities.name, '', 'city' FROM cities
WHERE cities.id NOT IN
(
SELECT traduction.`id` FROM traduction WHERE traduction.type='city' GROUP BY id
)
);
가 나는이 두 선택에 확장 설명했다 그것은에 선택 두 번째 선택은 모든에 대한 재생되도록 DEPENDENT 하위 쿼리를 말한다 : 그것은
쿼리는 ... 실행하는 일일로 vmore을 도시라고 생각하지만 쓸모가 없다고 생각합니다.
mysql 또는 다른 SQL 서버에서이를 허용 할 수있는 방법이 있습니까?
또는 다른 검색어 일 수도 있습니다.
도시에 traduction이없는 경우, 도시 이름을 traduction 테이블에 써야합니다. 그렇다면 나는 단지 표 (traduction table)가 아닌 도시 표 (cities table)를 봐야합니다. 내부 서브 쿼리의 결과는 또한 당신이 당신의 테이블에 대한 올바른 인덱스를 가질 수 있도록 당신을 위해,이
INSERT INTO traduction
(traduction.`id`,traduction.`traduction`,traduction.`language`,traduction.`type`)
(
SELECT cities.id,
cities.name,
'',
'city'
FROM cities LEFT JOIN
(
SELECT traduction.`id`
FROM traduction
WHERE traduction.type='city'
GROUP BY id
) s ON cities.id = s.id
WHERE s.ID IS NULL
);
뭔가를 시도 할 수 있습니다
더 의존성은 없지만 나는 그것이 내가 원하는 것이라고 생각하지 않는다. 어떻게 cities.id = s.id 및 s.ID IS NULL이 될 수 있습니까? cities.id가 번역 표에 존재하지 않으므로 가입 할 수 없습니다. 나는이 쿼리로 그것을 만들고 싶다. – Charles
이 쿼리는 번역에 존재하지 않는 도시의 모든 항목을 다시 가져옵니다. 그래서 ** LEFT JOIN과 IS NULL ** 체크를 언급합니다. –
오, 알았습니다. 감사합니다. 나는 그것을 시도 – Charles