The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Удаление с исключением"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (MySQL)
Изначальное сообщение [ Отслеживать ]

"Удаление с исключением"  +/
Сообщение от psychos email(ok) on 31-Окт-11, 14:53 
приветствую всех !
давно уже не кодил... тут столкнулся с такой проблемой :
есть 3 таблицы вида:
`alpha`
id|text
01|a
02|b
05|c
09|d
50|s

`betta`
id
01
02
03
04
05
06
07
08
09
10
11
12
13
50
52
54
55

`gamma`
id
52
55

нужно удалить "лишние строки" из `betta`, id которых нет в `alpha` и `gamma`.
можно было бы использовать not exist, но проблемма в том что во всех 3х таблицах строк, не менее 500-600к

понимаю что это "элементарщина", но голова забита совершенно =)

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Удаление с исключением"  +/
Сообщение от ACCA (ok) on 31-Окт-11, 18:40 
delete from betta left join alpha using(id) left join gamma using (id) where alpha.id is null and gamma.id is null;

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Удаление с исключением"  +/
Сообщение от rusadmin (ok) on 01-Ноя-11, 06:43 
> delete from betta left join alpha using(id) left join gamma using (id)
> where alpha.id is null and gamma.id is null;

не вижу ключей-ссылок (вторичных ключей). Какая запись к какой относиться - как узнать? =)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Удаление с исключением"  +/
Сообщение от DeadLoco (ok) on 01-Ноя-11, 13:38 
> не вижу ключей-ссылок (вторичных ключей). Какая запись к какой относиться - как
> узнать? =)

Проще всего - через учебник по SQL.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Удаление с исключением"  +/
Сообщение от ACCA (ok) on 01-Ноя-11, 18:16 
[]
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Удаление с исключением"  +/
Сообщение от psychos email(ok) on 02-Ноя-11, 14:35 
> delete from betta left join alpha using(id) left join gamma using (id)
> where alpha.id is null and gamma.id is null;

благодарю =)
delete b from `betta` b
  left join alpha using(id)
    left join gamma using (id)
where alpha.id is null and gamma.id is null;

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру