MYSQL使用内部连接触发
我有两个名为“用户和作业”的表。我制作了第三个表,它是用户和作业的内部连接,称为jobPosts。我的问题是当我将值插入到jobs表中时,它也会将值插入到新的jobPosts表中。这是我附加的SQL,但它无法为我工作MYSQL使用内部连接触发,mysql,triggers,inner-join,Mysql,Triggers,Inner Join,我有两个名为“用户和作业”的表。我制作了第三个表,它是用户和作业的内部连接,称为jobPosts。我的问题是当我将值插入到jobs表中时,它也会将值插入到新的jobPosts表中。这是我附加的SQL,但它无法为我工作 CREATE DEFINER=`root`@`localhost` TRIGGER trg_jobs_after_insert AFTER INSERT ON jobs FOR EACH ROW BEGIN INSERT INTO jobPost (userID, name,
CREATE DEFINER=`root`@`localhost` TRIGGER trg_jobs_after_insert
AFTER INSERT ON jobs
FOR EACH ROW
BEGIN
INSERT INTO jobPost (userID, name, email, phoneNo, location, jobID,
title, level, dateFrom, dateTo, description)
SELECT
users.name
, users.email
, users.phoneNo
, users.location
, NEW.jobID
, NEW.title
, NEW.level
, NEW.dateFrom
, NEW.dateTo
, NEW.description
FROM users
WHERE users.userID= NEW.user.userID;
END
表格->
作业表:
用户表:
您的where条件需要在
电子邮件上,而不是用户ID上。此外,在“选择插入”中缺少userId
DELIMITER //
CREATE DEFINER=`root`@`localhost` TRIGGER trg_jobs_after_insert
AFTER INSERT ON jobs
FOR EACH ROW
BEGIN
INSERT INTO jobPost (userID, name, email, phoneNo, location, jobID,
title, level, dateFrom, dateTo, description)
SELECT
users.userID
, users.name
, users.email
, users.phoneNo
, users.location
, NEW.jobID
, NEW.title
, NEW.level
, NEW.dateFrom
, NEW.dateTo
, NEW.description
FROM users
WHERE users.email = NEW.email;
END //
DELIMITER ;
您得到的错误是什么?执行正常,但没有插入到新表中。谢谢,但是,new.userID中有一个未知列出错。@AdamMcMenamin作业的表结构是什么comments@AdamMcMenamin您可以编辑原始问题并将表格结构添加到附加的jobstable屏幕抓图中。