I have a table in MySql and in it I want to enter data from another table located in a different database, the data is inserted correctly if I execute the following query:
INSERT INTO courses_members (course_id, user_id, added, validity, active, suma, fecha_solicitud)
SELECT sc.id AS course_id, sm.id AS user_id, DATE_FORMAT(NOW(), '%Y/%m/%d') AS added,
'0000-00-00' AS validity, 'Activo' AS active, 'si' AS suma, '0000-00-00' AS fecha_solicitud
FROM chamilo.course cc
INNER JOIN sm4rtuniversity.courses sc ON cc.title=sc.name
INNER JOIN chamilo.skill_rel_user sru ON sru.course_id=cc.id
INNER JOIN chamilo.user cu ON cu.id=sru.user_id
INNER JOIN sm4rtuniversity.members sm ON sm.email=cu.email;
But when wanting to validate that they are inserted only if that record does not exist in the destination table, no result is inserted.
INSERT INTO courses_members (course_id, user_id, added, validity, active, suma, fecha_solicitud)
SELECT sc.id AS course_id, sm.id AS user_id, DATE_FORMAT(NOW(), '%Y/%m/%d') AS added,
'0000-00-00' AS validity, 'Activo' AS active, 'si' AS suma, '0000-00-00' AS fecha_solicitud
FROM chamilo.course cc
INNER JOIN sm4rtuniversity.courses sc ON cc.title=sc.name
INNER JOIN chamilo.skill_rel_user sru ON sru.course_id=cc.id
INNER JOIN chamilo.user cu ON cu.id=sru.user_id
INNER JOIN sm4rtuniversity.members sm ON sm.email=cu.email
#INNER JOIN chamilo.course_rel_user cre ON cre.c_id=cc.id
WHERE sc.id NOT IN(SELECT course_id FROM sm4rtuniversity.courses_members)
AND sm.id NOT IN(SELECT user_id FROM sm4rtuniversity.courses_members);
The query does not throw any errors but no results are inserted.