Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по SQL 
:(
    Опции темы
Матроскин
Дата 10.7.2004, 06:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 24.6.2004
Где: Владивосток

Репутация: нет
Всего: нет



Уважаемые коллеги! В результате выполнения нижеприведённого запроса
у меня выходит две одинаковые строчки. На складе же у меня
хранится только один элемент "жесткий диск...". В чём может быть проблема?

Запрос:
SELECT element.name_full, producer.name, element.step_date,
sourcer.name,warehouse.name
FROM element, producer,sourcer,warehouse,
delivery,be,composition,produce
WHERE (element.elm_id=delivery.sourcer_id)
AND
(delivery.sourcer_id=sourcer.sourcer_id)

AND
(element.elm_id=be.elm_id)
AND
(be.wh_id=warehouse.wh_id)

AND
(element.elm_id=composition.elm_id)
AND
(composition.complete_id=0)

AND
(element.elm_id=produce.elm_id)
AND
(producer.prod_id=produce.prod_id)


Результат запроса
Жёсткий диск 20 гб, 7200 об. Samsung 1999-03-01 00:00:00.000 ДНС Товар.склад.группа
Жёсткий диск 20 гб, 7200 об. Samsung 1999-03-01 00:00:00.000 ДНС Товар.склад.группа
Lazerjet 400C Epson 2003-02-15 00:00:00.000 Бит Технический склад

PM MAIL   Вверх
Secandr
Дата 10.7.2004, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 2
Всего: 39



а если добавить GROUP BY (идинтификатор записи в которой храниться название товара)


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
<Spawn>
Дата 10.7.2004, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Матроскин Во первых, зачем ты включаешь в запрос таблицы, которые тут не нужны просто? Ты же выбираешь данные из element, producer, element,
sourcer,warehouse. Или у тебя другие таблицы являются связывающими?
Во вторых дубляж можешь обойти либо DISTINCT-ом, либо GROUP BY - ем, либо EXIST-ом(все зависит от конкретного случая), но DISTINCT это не есть хорошо, так как с ним все записи тянутся к клиенту и потом только происходит обрезание дубляжей. Если бы показал значение строк таблицы для этого диска, то может и причина стала бы ясна


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Матроскин
Дата 12.7.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 24.6.2004
Где: Владивосток

Репутация: нет
Всего: нет



Цитата
Матроскин Во первых, зачем ты включаешь в запрос таблицы, которые тут не нужны просто? Ты же выбираешь данные из element, producer, element,
sourcer,warehouse. Или у тебя другие таблицы являются связывающими?
Во вторых дубляж можешь обойти либо DISTINCT-ом, либо GROUP BY - ем, либо EXIST-ом(все зависит от конкретного случая), но DISTINCT это не есть хорошо, так как с ним все записи тянутся к клиенту и потом только происходит обрезание дубляжей. Если бы показал значение строк таблицы для этого диска, то может и причина стала бы ясна

Group by ПОМОГ. Спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.