Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 14:54 28.09.24 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Тема DELETE със JOINнови  
Автор БM21 (непознат )
Публикувано08.03.10 14:57



Гледам разни примери за командата DELETE но всички са доста елементарини и в WHERE има само изрази с колони от таблицата, в която се трие. Как ще се направи изтриване с JOIN? Например, имам две таблици: Table1 и Table2. В първата - колони workerID и Sum, във втората workID и Status. Как може да се направи нещо от вида
Delete from table1 where workerid=workid and status='Active'



Тема Re: DELETE със JOINнови [re: БM21]  
Автор wqw (АзСъмЖив)
Публикувано09.03.10 00:55



Винаги можеш да заменис JOIN със IN или с EXISTS така например

DELETE Table1

WHERE EXISTS (SELECT *
FROM Table2
WHERE WorkID = Table1.WorkerID
AND Status = 'Active')

Иначе в T-SQL имаш JOIN при DELETE да не се зориш. Не работи на VIEW-та с INSTEAD OF тригери, но това надали те касае.

cheers,
</wqw>



Тема Re: DELETE със JOINнови [re: БM21]  
Автор salle (един такъв)
Публикувано09.03.10 15:58



Зависи кой сървър ползваш.

MySQL поддържа два варианта на такъв синтаксис:

DELETE FROM table1 USING table1 JOIN table2 ON ... WHERE ....
или
DELETE table1 FROM table1 JOIN table2 ON .. WHERE ...



за другите сървъри не знам



Тема Re: DELETE със JOINнови [re: salle]  
Автор wqw (АзСъмЖив)
Публикувано09.03.10 17:20



Втория синтаксис се поддържа от MSSQL. Същия синтаксис е и при UPDATE.



Тема Re: DELETE със JOIN [re: wqw]  
Автор Dakota (erotoman)
Публикувано17.03.10 13:43



В PostgreSQL се поддържа някаква вариация на първия синтаксис:

DELETE FROM x USING y WHERE x.id=y.id;

Иначе твоето предложение с подзаявките ми се струва най-чисто.

"Договор, подписан с Русия, струва по-малко от хартията, върху която е написан!" - Бисмарк

Редактирано от Dakota на 17.03.10 13:44.



Тема Re: DELETE със JOINнови [re: Dakota]  
Автор headhunter (Z-95)
Публикувано02.04.10 16:42



Аз в такива случаи предпочитам EXIST или IN.

General Protection Fault in module 0xDEEBAA. Рестартирайте държавата!


Тема Re: DELETE със JOINнови [re: БM21]  
Автор kodjaian ()
Публикувано26.02.12 15:03



Опитай така:

DELETE FROM TableA
FROM
TableA a
INNER JOIN TableB b
ON b.BId = a.BId
AND [филтъра, който искаш да използваш]




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.