X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Требуется помощь в написании SQL-запроса
Metalor
Metalor
Topic Starter сообщение 14.5.2012, 0:47; Ответить: Metalor
Сообщение #1


Здравствуйте, форумчане, только начинаю изучать SQL и столкнулся с проблемой.
Есть 2 таблицы - таблица препаратов (drug), содержащая поле "наименование препарата" (NAME)
и таблица поставщиков (distributor), содержащая поля "имя поставщика" (DIST_NAME) и "наименование препарата" (DRUG_NAME), который поставляется этим поставщиком (масло масляное)
Никак не получается напиcать запрос, который бы выводил
Поставщиков, которые никогда не поставляли конкретный препарат.
Т.е. допустим содержимое таблиц такое:


drug

*****|
NAME-|
-------|
aaaa--|
bbbb--|
cccc--|
*****|



distributor

|*********************|
|DIST_NAME--|DRUG_NAME--|
|---------------------------|
|-1-----------|-aaaa-------|
|-1-----------|-bbbb-------|
|-1-----------|-cccc-------|
|-2-----------|-bbbb-------|
|-2-----------|-cccc-------|
|-3-----------|-aaaa-------|
|*********************|

Поставщик 1 пославлял все имеющиеся в базе препараты, следовательно его выводить не нужно, поставщик 2 не поставлял препарат аааа, значит выводим его с соответствующим препаратом и
поставщик 3 не поставлял препараты cccc и bbbb, тоже выводим.
И на выходе должна быть такая таблица

|******************|
|-2-----------|-aaaa---|
|-3-----------|-bbbb---|
|-3-----------|-cccc---|
|******************|

Подскажите, пожалуйста, как написать запрос?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 14.5.2012, 8:52; Ответить: Arks
Сообщение #2


SELECT <что-то>, count(drug.name) as cnt, distributor.dist_name, drug.name
FROM distributor left join drug on бла-бла-бла
GROUP by distributor.dist_name
HAVING cnt=0

Смысл должен быть примерно такой... щас сам запрос некогда писать - убегаю, но почву для размышления я Вам дал. Ну там конечно запрос не такой будет.. накидайте данных в таблицы и сдампите в sql тогда напишу какой нужен
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Metalor
Metalor
Topic Starter сообщение 14.5.2012, 20:21; Ответить: Metalor
Сообщение #3


Вот запрос:
SELECT U1.Dist_Name,drug.Name
FROM drug,(SELECT Dist_Name FROM distributor GROUP BY Dist_Name) U1
WHERE NOT EXISTS(SELECT * FROM distributor WHERE distributor.Dist_Name=U1.Dist_Name AND distributor.DRUG_NAME=drug.Name)
ORDER BY U1.Dist_Name,drug.Name
Всем спасибо!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 16.5.2012, 13:06; Ответить: Arks
Сообщение #4


не я бы так делать(подзапросы с группировкой) не стал

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
15 Tia2 2386 17.4.2024, 0:54
автор: diviner99
Открытая тема (нет новых ответов) Требуется копирайтер-постер
11 Hanj 2618 2.4.2024, 12:40
автор: Skyworker
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСостояние после ампутации - нужна помощь
благотворительный топик
49 vitvirtual 5894 1.4.2024, 5:23
автор: vitvirtual
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 630 16.3.2024, 18:41
автор: Taylor
Открытая тема (нет новых ответов) Требуется контент-менеджер
1 Grimov 1163 8.2.2024, 9:54
автор: projectadmin


 



RSS Текстовая версия Сейчас: 24.4.2024, 20:49
Дизайн