В MySQL вы можете использовать синтаксис
DELETE t1,t2
FROM table1 AS t1
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...
Как мне сделать то же самое в SQL Server?
sql
sql-server
tsql
Байрон Уитлок
источник
источник
Вы всегда можете настроить каскадное удаление для отношений таблиц.
Вы можете инкапсулировать несколько удалений в одной хранимой процедуре.
Вы можете использовать транзакцию, чтобы гарантировать одну единицу работы.
источник
Вы можете использовать синтаксис JOIN в предложении FROM в DELETE в SQL Server, но вы по-прежнему удаляете только из первой таблицы и ее проприетарного расширения Transact-SQL, которое является альтернативой подзапросу.
Из примера здесь :
источник
Пример удаления некоторых записей из основной таблицы и соответствующих записей из двух подробных таблиц:
источник
SELECT INTO #DeleteIds
вместо "CREATE TABLE 'DeleteIds
после"INSERT INTO 'DeleteIds...
?Просто интересно .. действительно ли это возможно в MySQL? он удалит t1 и t2? или я просто неправильно понял вопрос.
Но если вы просто хотите удалить table1 с несколькими условиями соединения, просто не используйте псевдоним для таблицы, которую хотите удалить.
этот:
для работы в MSSQL нужно написать так:
чтобы сравнить, как две другие общие СУБД выполняют операцию удаления:
http://mssql-to-postgresql.blogspot.com/2007/12/deleting-duplicates-in-postgresql-ms.html
источник
По сути, нет, вам нужно сделать три оператора удаления в транзакции, сначала дочерние элементы, а затем родители. Настройка каскадных удалений - хорошая идея, если это не одноразовая вещь, и ее существование не будет противоречить любой существующей настройке триггера.
источник
В SQL-сервере нет возможности удалить несколько таблиц с помощью соединения. Таким образом, вы должны сначала удалить из дочернего элемента, прежде чем удалять родительскую форму.
источник
Это альтернативный способ удаления записей, не оставляя сирот.
источник
Все было указано. Просто используйте либо
DELETE ON CASCADE
на родителеtable
или удалить изchild-table
кparent
.источник
Как уже отмечал Аарон, вы можете настроить поведение удаления на CASCADE, и это приведет к удалению дочерних записей при удалении родительской записи. Если вы не хотите, чтобы произошло какое-то другое волшебство (в этом случае будут полезны пункты 2, 3 ответа Аарона), я не понимаю, зачем вам нужно удалять с помощью внутренних соединений.
источник
Чтобы основываться на ответе Джона Гибба для удаления набора данных в двух таблицах с отношением FK:
источник
источник
$ SQL = "DELETE FROM
basic_tbl
,education_tbl
,personal_tbl
,address_tbl
,department_tbl
ИСПОЛЬЗОВАНИИbasic_tbl
,education_tbl
,personal_tbl
,address_tbl
,department_tbl
WHEREb_id
=e_id
=p_id
=a_id
=d_id
= '" $ ID.. "» «; $ Rs = mysqli_query ($ против, $ SQL);источник