|
|
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Что-то не нашел вопроса в темах. Есть таблица1 (счета) Есть таблица2 (строки счета) Есть таблица3 (расшифровка строк счета) Все это последовательно связано один-ко-многим Как по ID счета удалить записи из таблицы3? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 07:46:01 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Тут наверное и не ответит никто. В BOL есть описание такого оператора - DELETE называется. Вот он как раз и отвечает за удаление записей в таблицах. По-моему это как раз и есть то что надо использовать :) -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 09:15:02 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Про DELETE я знаю. Фокус в том, чтобы удалить записи из Таблицы3 без удаления записей из Таблица1 и Таблица2. Поясню примером: Вот такой запрос в Access отрабатывает без проблем DELETE Таблица3.*, Таблица1.tbl1_RecID FROM (Таблица1 INNER JOIN Таблица2 ON Таблица1.tbl1_RecID = Таблица2.ParentID) INNER JOIN Таблица3 ON Таблица2.tbl2_RecID = Таблица3.ParentID WHERE (((Таблица1.tbl1_RecID)=123)) А аналог в SQL Server отказывается, кричит несколько base tables ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 10:22:22 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 11:10:41 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Да но теперь вот это удаляет все записи DELETE from table3 FROM (table1 INNER JOIN table2 ON table1.t1 = table2.t1) INNER JOIN table3 ON table2.t2 = table3.t2 WHERE (((table1.t1)=1)) А не только соответствующие условию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 12:52:20 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
IMHO правильнее будет DELETE table3 FROM table3 INNER JOIN table2 ON table3.t2 = table2.t2 INNER JOIN table1 ON table2.t1 = table1.t1 WHERE table1.t1=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 14:18:38 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Я не опаздал :))))) И не лень мне было столько набрать .... Судя по Вашему коду вы пользовались автопостроилелем запросов :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 18:42:30 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
2 Glory Этот вариант удаляет все записи из Table3 Похоже, что версия MarchCat тоже, так ка не вижу разницы, но пока не проверил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 20:22:10 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
2 MarchCat Именно Удаляются все записи из Table3. Не работает! Проклятье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 20:28:19 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Марат, Ты бы поглядел еще раз на данные, которые ты удаляешь? В Table3 у тебя idp=9 у всех строк. Соответственно, в Table2 у строки с id=9 idp=3. Значит и правильно, что удаляются все строки из Table3. Ты вот что сделай: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Кстати, Glory, а в чем разница, я честно говоря не вижу, почему порядок указания таблиц в JOIN играет роль? -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2002, 00:34:43 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Если столы связаны по ключевым полям один ко многим то таки так наверно: Delete from t3 where id_t2 in (select id from t2 where id_t1=:id_t1) где :id_t1 тот счет записи которого нуно снести из t3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2002, 01:24:10 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
to Слон Согласен! Как я сам не догадался :)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2002, 07:10:12 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Almi, Вы привели совершенно ужасный пример того, как нельзя писать запросы к базе данных. Пойжу приму 300 капель эфирной валерьянки... :) -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2002, 08:43:36 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
2 Слон Да собственно ни в чем нет разницы. Просто, наверное, глаз замылился - показалось что ваш запрос неправильный. Как в том анекдоте - "ну значит, музыкой навеяло ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2002, 13:20:44 |
|
||
|
Удаление из подчиненых таблиц
|
|||
|---|---|---|---|
|
#18+
Glory, Нельзя же так пугать человека. Я целых полчаса напряженно размышлял, читал первоисточники, а может быть и правда неправильный запрос? А я его направо и налево использую :)))))))))))))))))) -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2002, 20:43:02 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32045706&tid=1820869]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 333ms |

| 0 / 0 |
