546 / 273 / 50
Регистрация: 03.04.2015
Сообщений: 926
1

Запрос выдаёт больше записей, чем нужно

14.12.2015, 20:37. Показов 348. Ответов 8
Метки нет (Все метки)

Выборка из трёх таблиц: 1. Клиенты. 2.Адреса клиентов (может быть больше одного) 3.Заказы.
Таблица клиенты связана с адресами и заказами. Заказы с адресами не связаны.

Трабла наблюдается, если у клиента больше, чем 1 адрес. В список заказов попадают все адреса и для каждого адреса один и тот же заказ дублируется. Получается, что заказ оформлен на 1 адрес, а списке он показывается несколько раз.

Ничего толком не придумал, кроме как вводить дополнительное поле в таблицу с заказами и вязать его с таблицей адресов.

Есть ещё какие варианты?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2015, 20:37
Ответы с готовыми решениями:

Мистика: SQL запрос в PHPmyadmin выдает больше, чем в PHP скрипте
Я в шоке! Час сижу и высматриваю возможные ошибки, стирал и переписывал заново руками код. В PHP...

Sizeof структуры выдаёт на 2 байта больше, чем имеет структура
Здравия. Имеется сферический код в вакууме: #undef __LONG32 #ifndef __LP64__ /* 32 bit...

MySQL: Почему запрос выдаёт ошибку в чём причина?
При модификации запроса UPDATE TMP_Invoicing, t_delivery_transit_data AS TD, t_php_recreport_hdr...

Высота страницы больше, чем нужно
Добрый день, господа! Подскажите, кому не трудно. Наткнулся на бесплатный ресурс html5up.net и...

8
Заблокирован
14.12.2015, 20:40 2
Почти ни чего не понял, но скорее всего у вас в запросе считаются все возможные варианты.
Нужно в режиме конструктора запроса пощелкивая по линиям связи указать способ объединения таблиц.
Обычно это помогает.
0
Заблокирован
14.12.2015, 21:06 3
нужна поставить связь один ко многим....выложить файл сделаем
0
Эксперт MS Access
2825 / 1367 / 215
Регистрация: 13.05.2011
Сообщений: 4,191
14.12.2015, 21:33 4
corbis,
Цитата Сообщение от corbis Посмотреть сообщение
Трабла наблюдается, если у клиента больше, чем 1 адрес.
Так бывает, если вы в запросе хотите показать совсем разные зависимости: т.е. есть клиент. От него идет связь к таблице Адреса. И есть связь Клиент - Заказы.
Получается Клиент один и у него одно ключевое поле идет много раз в таблицу с адресами и скажем один раз в таблицу с Заказами. Естественно выходит все, что принадлежит ключевому полю КЛИЕНТА.

Нужен Ваш пример в запакованном виде.

Добавлено через 1 минуту
corbis,
В таких случаях делают два запроса и объединяют их запросом на обновление. Естественно в одном запросе из трех адресов должна быть выборка одного адреса.

Добавлено через 14 минут
Цитата Сообщение от Вячеслав Я Посмотреть сообщение
и объединяют их запросом на обновление.
Извиняюсь: объединяют запросом на объединение
0
546 / 273 / 50
Регистрация: 03.04.2015
Сообщений: 926
14.12.2015, 22:16  [ТС] 5
прилепил огрызок, участвующий в запросе.
В запросе видно, что последний заказ дублируется.
0
Вложения
Тип файла: rar Test2.rar (48.0 Кб, 3 просмотров)
449 / 237 / 14
Регистрация: 29.10.2014
Сообщений: 954
14.12.2015, 23:55 6
Цитата Сообщение от corbis Посмотреть сообщение
Заказы с адресами не связаны.
Цитата Сообщение от corbis Посмотреть сообщение
заказ оформлен на 1 адрес, а списке он показывается несколько раз
сами объяснили ошибку
0
corbis
15.12.2015, 00:07  [ТС]
  #7

Не по теме:

Ну, так-то вроде понимаю, но уже голова не варит, решил на всякий пожарный уточнить.

0
Эксперт MS Access
26708 / 14388 / 3190
Регистрация: 28.04.2012
Сообщений: 15,783
15.12.2015, 03:46 8
Цитата Сообщение от corbis Посмотреть сообщение
В запросе видно, что последний заказ дублируется.
Последний заказ дублируется потому что в таблице CustAdr этот Любин упомянут 2 раза: на Ленина проспект для IdCustAdr=9 и на Приморском шоссе для IdCustAdr=10. Живет в 2 местах и заказывает дважды :-)
0
546 / 273 / 50
Регистрация: 03.04.2015
Сообщений: 926
16.12.2015, 02:05  [ТС] 9
нее, заказывает 1 раз. Только вот программа никак не поймет..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2015, 02:05

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Eof() работает на 1 итерацию больше, чем нужно
Работаю с чтением/записью в файл прямого доступа Сперва записываю в пустой файл объект структуры,...

BackgroundWorker крутится больше раз чем нужно
Добрый вечер. Есть такой код: ////////////// ...

Считаю количество символов в слове, почему у первого слова мой счетчик выдает на один больше чем должно быть?
Написал программа которая считает количество символов в словах, у первого слова мой счетчик вывел...

Код запрашивает на одно значение больше, чем нужно
Есть вот такой код но при выполнение программы спрашивает на одно больше значение . Например я хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.