sql >> データベース >  >> RDS >> Mysql

MYSQL-テーブルの更新後の内部結合

    コメントから、あなたは単にInner Joinが必要なようです jobPostの間 およびusers テーブル、emailTeacher

    また、Selectの一部の列 Insertと比較して、欠落していました 句;適切な順序で追加しました。

    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 ;
    



    1. ユーザーを作成するためのMySQLストアドプロシージャ

    2. DBMS_SQLを使用してレコードを挿入するOracleDynamicSQLの例

    3. MySQL-WhereINクエリで一致する結果と一致しない結果

    4. インメモリデータベースとディスクメモリデータベースの違い