powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выбрать записи не входящие в группу
4 сообщений из 4, страница 1 из 1
Как выбрать записи не входящие в группу
    #32009304
Konnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброй «охоты».
Помогите советом.
Есть три таблицу: 1. Названия групп, 2. Справочник продукции,
3.Таблица соответствий, т.е ID_Группы, ID_продукции.
Необходимо выбрать продукцию, которая не входит в какую-то группу.
Я делаю это так:
- создаю временную таблицу в которую заношу продукцию
- потом (из временной таблицы) удаляю продукцию, которая входит в эту группу и получаю искомый результат.
Может кто-то посоветует более красивый вариант.
Заранее благодарю.
...
Рейтинг: 0 / 0
Как выбрать записи не входящие в группу
    #32009309
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create table #groups(id int identity, name varchar(10))
insert into #groups(name) values('group 1')
insert into #groups(name) values('group 2')

create table #products(id int identity, name varchar(10))
insert into #products(name) values('product 1')
insert into #products(name) values('product 2')
insert into #products(name) values('product 3')
insert into #products(name) values('product 4')

create table #temp1(group_id int, product_id int)
insert into #temp1 values(1, 1)
insert into #temp1 values(1, 2)
insert into #temp1 values(2, 3)


/*All products with group*/
select * from
#groups a
inner join #temp1 b on b.group_id = a.id
inner join #products c on b.product_id = c.id

/*All products without group*/
select *
from #products a
left outer join #temp1 b on b.product_id = a.id
where b.product_id is null

drop table #groups
drop table #products
drop table #temp1
...
Рейтинг: 0 / 0
Как выбрать записи не входящие в группу
    #32009372
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Необходимо выбрать продукцию, которая не входит в какую-то группу.
Вот эта фраза может быть расталкована двояко. Glory ответил тебе на один из вариантов толкования - выбрать продукцию, которая не входит вообще ни в одну группу. Второй вариант толкования - выбрать продукцию, которая не входит в одну какую-то конкретную группу, но, возможно, входит в другие группы. Для второго варианта задача решается так:
declare @GroupID int
set @GroupID=1 -- Собственно, в какую группу не входит
select * from #products where not ID in (select Prod_ID from #temp1 where product_id=@GroupID)

Пожелание. Высказывайтесь пожалуйста менее туманно и в то же время не настолько конкретно, чтобы у линии прокрутки не было конца.
...
Рейтинг: 0 / 0
Как выбрать записи не входящие в группу
    #32009397
Konnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное всем спасибо за урок!
Как все красиво!!!!!!!!!!!!!!!!!
Надеюсь у меня самого когда нибудь получется также без подсказки.
Еще раз всем спасибо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как выбрать записи не входящие в группу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]