Translate

Delete records from a table using JOIN in SQL Server

CREATE TABLE employees (in_employee_id int, dt_updated datetime, bt_active bit)
CREATE TABLE employees_salary (in_employee_id int, in_salary_id int, dt_updated datetime, bt_active bit)

INSERT INTO dbo.employees (in_employee_id, dt_updated, bt_active) VALUES (1, GETDATE(), 1)
INSERT INTO dbo.employees (in_employee_id, dt_updated, bt_active) VALUES (2, GETDATE(), 1)
INSERT INTO dbo.employees (in_employee_id, dt_updated, bt_active) VALUES (3, GETDATE(), 1)
INSERT INTO dbo.employees (in_employee_id, dt_updated, bt_active) VALUES (4, GETDATE(), 1)
INSERT INTO dbo.employees (in_employee_id, dt_updated, bt_active) VALUES (5, GETDATE(), 1)


INSERT INTO dbo.employees_salary (in_employee_id, in_salary_id, dt_updated, bt_active) VALUES (1, 1, GETDATE(), 1)
INSERT INTO dbo.employees_salary (in_employee_id, in_salary_id, dt_updated, bt_active) VALUES (1, 2, GETDATE(), 1)
INSERT INTO dbo.employees_salary (in_employee_id, in_salary_id, dt_updated, bt_active) VALUES (2, 3, GETDATE(), 1)
INSERT INTO dbo.employees_salary (in_employee_id, in_salary_id, dt_updated, bt_active) VALUES (3, 4, GETDATE(), 1)
INSERT INTO dbo.employees_salary (in_employee_id, in_salary_id, dt_updated, bt_active) VALUES (4, 5, GETDATE(), 1)
INSERT INTO dbo.employees_salary (in_employee_id, in_salary_id, dt_updated, bt_active) VALUES (5, 6, GETDATE(), 1)

SELECT * FROM dbo.Employees_salary

DELETE FROM a
FROM dbo.employees_salary a
INNER JOIN dbo.employees b ON a.in_employee_id = b.in_employee_id
WHERE a.in_employee_id = 1

[Note: above query will delete 2 records from employees_salary table having employee id 2]

SELECT * FROM dbo.Employees_salary

No comments:

Post a Comment