Table1: StudentID, StudentName
Удалить одинаковые строки в двух таблицах
Table2: DetailsID, StudentID, Gender, Age
Я хочу удалить StudentID
в table1
так, что все строки, которые принадлежат StudentID
удалить из table2
...
Table1: StudentID, StudentName
Удалить одинаковые строки в двух таблицах
Table2: DetailsID, StudentID, Gender, Age
Я хочу удалить StudentID
в table1
так, что все строки, которые принадлежат StudentID
удалить из table2
...
Вам нужен следующий код SQL?
delete from table1
where exists (
select * from table2 where table2.StudentName = Table1.StudentName
)
Это приведет к удалению каждой записи из таблицы 1 с соответствующим элементом в таблице 2. SO, возможно, она удалит все в таблице 1 и ничего в таблице2 или я ошибаюсь? – Dannydust
Я использую это: SqlCommand com = новый SqlCommand («удалить из таблицы1, где существует (выберите * из таблицы2.StudentName = table1.StudentName)», con), но это ошибка: неправильный синтаксис рядом с '='. – mhshojaee
@mhshojaee: Вы должны написать это следующим образом: Выберите * из таблицы2 t2 присоедините таблицу1 t1 к t2.StudentName = t1.StudentName – Dannydust
Вы должен изменить вашу таблицу2, чтобы удалить на каскаде с помощью внешнего ключа Contraint, и вы не должны использовать имя студента там, где раньше были Shoban, Hamlet Hakobyan и Peter Smith statet.
ALTER TABLE Table2 WITH CHECK
ADD CONSTRAINT [FK_Table2_Table1] FOREIGN KEY([StudentID])
REFERENCES [dbo].[Table1] ([StudentID])
ON DELETE CASCADE
Затем, когда вы удаляете ученика в таблице 1, строки с тем же StudentId в таблице2 автоматически удаляются.
В Таблице 2 вам не нужно имя студента, если набрано правильно заполнено StudentId, вы можете удалить столбец StudentName в таблице2, поскольку он существует уже в таблице1.
ALTER Table Table1 drop column StudentName
Какие технологии вы используете для своего уровня данных. Я бы также предложил добавить StudentID в таблицу 2 в качестве вашего внешнего ключа. –
Что делать, если у двух учеников одно имя? Вы должны использовать идентификатор студента, который уникален для идентификации пользователя, который нужно удалить. – Shoban
Используйте ссылочную целостность с удалением каскада. –