Как пересечь представление и таблицу в MySQL? - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть вид и таблица.Я вставляю данные в таблицу на основе этого представления.Я хочу, чтобы это представление исключило те же данные, которые уже вставлены в таблицу.

Это представление с именем view_1.

CREATE VIEW view_1 AS
SELECT 
    y.employee_registration_id,
    x.employee_first_name,
    x.employee_last_name,
    x.employee_email,
    y.employee_current_salary_amount,
    (SELECT 
            x.salary_of_year_month_YearMonth
        FROM
            salary_of_years_months x
                LEFT JOIN
            status_salary_of_years_months y ON x.salary_of_year_month_id = y.salary_of_year_month_id
        WHERE
            y.year_month_status = 'Ongoing') AS salary_of_year_month_YearMonth,
    (SELECT 
            CONCAT(MONTHNAME(x.salary_of_year_month_YearMonth),
                        '-',
                        YEAR(x.salary_of_year_month_YearMonth))
        FROM
            salary_of_years_months x
                LEFT JOIN
            status_salary_of_years_months y ON x.salary_of_year_month_id = y.salary_of_year_month_id
        WHERE
            y.year_month_status = 'Ongoing') AS salary_of_year_month_YearMonth_MonthYear
FROM
    basic_info_employees x
        LEFT JOIN
    current_salary_employees y ON x.employee_registration_id = y.employee_registration_id
WHERE
    y.employee_current_salary_amount > 0;

Это таблица.

 CREATE TABLE `salary_tracker_employees` (
serial_no INT(4) NOT NULL AUTO_INCREMENT,
employee_registration_id INT(4),
employee_first_name VARCHAR(30),
employee_last_name VARCHAR(30),
employee_email VARCHAR(30),
salary_of_year_month_YearMonth VARCHAR(50),
employee_current_salary_amount DOUBLE(8 , 2 ),
PRIMARY KEY (serial_no),
UNIQUE (employee_registration_id , salary_of_year_month_YearMonth)
);

Я хочу получить представление, которое будет пересекаться между view_1 и salary_tracker_employees.

...