You can try something like this
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
);
, , , traduction.type traduction.id cities.id
INSERT INTO traduction
(traduction.`id`,traduction.`traduction`,traduction.`language`,traduction.`type`)
(
SELECT cities.id,
cities.name,
'',
'city'
FROM cities LEFT JOIN
(
SELECT DISTINCT
traduction.`id`
FROM traduction
WHERE traduction.type='city'
) s ON cities.id = s.id
WHERE s.ID IS NULL
);
:
INSERT INTO traduction
(traduction.`id`,traduction.`traduction`,traduction.`language`,traduction.`type`)
(
SELECT cities.id,
cities.name,
'',
'city'
FROM cities
WHERE NOT EXISTS (
SELECT DISTINCT
traduction.`id`
FROM traduction
WHERE traduction.type='city'
AND cities.id = traduction.id
)
);