[英]MYSQL - Inner Join with AFTER UPDATE in table
I have a table called jobPosts in my mySQL datbase. 我的MySQL数据库中有一个名为jobPosts的表。 I am trying to to insert data into another table (jobRequest) once an update has occurred in my current jobPost table.
我试图在当前jobPost表中发生更新后将数据插入到另一个表(jobRequest)中。
Here is my SQL tables & queries. 这是我的SQL表和查询。
DELIMITER //
CREATE DEFINER=`root`@`localhost` TRIGGER
trg_jobPost_after_update
AFTER UPDATE ON jobPost
FOR EACH ROW
BEGIN
INSERT INTO jobRequest (userID, name, email, phoneNo,
location, jobID,
title, level, dateFrom, dateTo, description,
jobStatus, emailTeacher, nameTeacher,
locationTeacher, phoneNoTeacher, cv, gardavetting,
linkedin)
SELECT
jobPost.userID
, jobPost.name
, jobPost.email
, jobPost.phoneNo
, jobPost.location
, jobPost.jobID
, jobPost.title
, jobPost.level
, jobPost.dateFrom
, jobPost.dateTo
, jobPost.description
, users.nameTeacher
, users.locationTeacher
, users.phoneNoTeacher
, users.cv
, users.gardavetting
, users.linkedin
, NEW.jobStatus
, NEW.emailTeacher
FROM jobPost
WHERE jobPosts.emailTeacher = NEW.emailTeacher;
END //
DELIMITER ;
Tables - 桌子-
jobPost table jobPost表
users Table 用户表
From comments, it seems that you simply need a Inner Join
between the jobPost
and users
table, on emailTeacher
. 从评论,似乎你只需要一个
Inner Join
之间jobPost
和users
表,上emailTeacher
。
Also, some columns from Select
were missing, in comparison to Insert
clause; 另外,与
Insert
子句相比, Select
中的某些列丢失了; I have added them in proper order. 我已经按正确的顺序添加了它们。
DELIMITER //
CREATE DEFINER=`root`@`localhost` TRIGGER
trg_jobPost_after_update
AFTER UPDATE ON jobPost
FOR EACH ROW
BEGIN
-- Check if jobStatus is Updated (then only we Insert)
IF ( OLD.jobStatus <> NEW.jobStatus AND
OLD.emailTeacher <> NEW.emailTeacher ) THEN
INSERT INTO jobRequest (userID, name, email, phoneNo,
location, jobID, title, level,
dateFrom, dateTo, description,
jobStatus, emailTeacher, nameTeacher,
locationTeacher, phoneNoTeacher, cv,
gardavetting, linkedin)
SELECT
jobPost.userID
, jobPost.name
, jobPost.email
, jobPost.phoneNo
, jobPost.location
, jobPost.jobID
, jobPost.title
, jobPost.level
, jobPost.dateFrom
, jobPost.dateTo
, jobPost.description
, NEW.jobStatus
, NEW.emailTeacher
, users.nameTeacher
, users.locationTeacher
, users.phoneNoTeacher
, users.cv
, users.gardavetting
, users.linkedin
FROM jobPost
JOIN users ON users.emailTeacher = jobPost.emailTeacher
WHERE jobPost.emailTeacher = NEW.emailTeacher;
END IF;
END //
DELIMITER ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.