УДАЛИТЕ данные из таблицы, присоединяющейся через две таблицы

Я работаю с некоторыми довольно уязвимыми данными, таким образом, я хочу быть АБСОЛЮТНО уверенным, что я делаю их правильно.

Я пытаюсь удалить строки в таблице, которые связаны с другой таблицей

Единственный способ связать таблицу состоит в том, чтобы присоединиться через две других таблицы...

вот точный запрос:

DELETE tt.Transaction_Amount, tt.Transaction_ID
  FROM ItemTracker_dbo.Transaction_Type tt
  JOIN ItemTracker_dbo.Transaction t ON tt.Transaction_ID = t.Transaction_ID
  JOIN ItemTracker_dbo.Purchase p ON p.Transaction_ID = tt.Transaction_ID
  JOIN ItemTracker_dbo.Item i ON i.Item_ID = p.Item_ID
 WHERE i.Client_ID = 1

Как Вы видите, это не симпатично.

Я получаю нечетную ошибку, хотя через MySQL запрашивают браузер...

Таблица Unkown 'Transaction_Amount' во МНОГО УДАЛЯЕТ

Я попытался читать mysql руководство, и кажется, что это должно работать мне... у кого-либо есть какая-либо идея?

10
задан Brian Tompsett - 汤莱恩 6 July 2015 в 11:21
поделиться

3 ответа

[

] Нужно удалять строки из []tt[], а не отдельные колонки: [

] [
DELETE tt
  FROM ItemTracker_dbo.Transaction_Type tt
  JOIN ItemTracker_dbo.Transaction t ON tt.Transaction_ID = t.Transaction_ID
  JOIN ItemTracker_dbo.Purchase p ON p.Transaction_ID = tt.Transaction_ID
  JOIN ItemTracker_dbo.Item i ON i.Item_ID = p.Item_ID
 WHERE i.Client_ID = 1
]
24
ответ дан 3 December 2019 в 16:29
поделиться
[

] Синтаксис неверен - вы [] не ссылаетесь на столбцы [] между [] DELETE [] и [] FROM []. Используйте:[

] [
DELETE FROM ItemTracker_dbo.Transaction_Type tt
  JOIN ItemTracker_dbo.Transaction t ON tt.Transaction_ID = t.Transaction_ID
  JOIN ItemTracker_dbo.Purchase p ON p.Transaction_ID = tt.Transaction_ID
  JOIN ItemTracker_dbo.Item i ON i.Item_ID = p.Item_ID
 WHERE i.Client_ID = 1
] [

]Чтобы быть уверенным, что вы удаляете правильные вещи, я согласен с wallyk, что вы должны проверить вывод SELECT утверждения, что то, что возвращается, это то, что вы хотите удалить до этого. В противном случае, выполните удаление в транзакции, чтобы при необходимости можно было откатить его обратно.[

].
1
ответ дан 3 December 2019 в 16:29
поделиться
[

] Вы должны составить его изначально как запрос на возврат интересующих строк. После того, как все это будет отлажено, затем преобразовать в delete.[

]
0
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: