Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL - Wewnętrzne połączenie z AFTER UPDATE w tabeli

Z komentarzy wynika, że ​​po prostu potrzebujesz Inner Join między jobPost i users tabela, na emailTeacher .

Ponadto niektóre kolumny z Select brakowało w porównaniu z Insert klauzula; Dodałem je w odpowiedniej kolejności.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przeanalizuj ciąg XML w MySQL

  2. Zmień język komunikatów o błędach MySQL

  3. Python 3.7, nieudane koło budowania dla MySql-Python

  4. Jak uzyskać liczbę bitów w ciągu w MySQL — BIT_LENGTH()

  5. mysql On Powiel wartość w polu, wstaw nowy wiersz z nową wartością