Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2018, 17:20   #1
Русланчик
 
Регистрация: 07.10.2008
Сообщений: 3
По умолчанию выборка из БД - как сгруппировать значения из БД по одной и той же записи избежав повторов

Здравствуйте!
Возникла задача, как сгруппировать значения из БД, если допустим выводится информация по одной и той же записи, но с разными местами размещения магазинов
Как реализовать, чтоб было все для одной записи, убрав дуплетность
Во вложении пример
В поле id_book - это одна и та же книга,
В поле id_sigla- места магазинов
Получается,что выводится она 2 раза с одинаковым названием книги
Как этого избежать

Спасибо

P.S существуют экземпляры, которые имеются только в одном месте, и соответственно выводятся только один раз
Изображения
Тип файла: png 1452.png (23.8 Кб, 128 просмотров)
Русланчик вне форума Ответить с цитированием
Старый 12.02.2018, 17:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

что за книга, что за места магазинов, каким запросом выводите и, главное, а как Вы хотите получить результат (в каком виде)?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.02.2018, 18:08   #3
Русланчик
 
Регистрация: 07.10.2008
Сообщений: 3
По умолчанию

вот я привожу результат выборки- данные одинаковые, поэтому их мне необходимо объединить, и просто места вывести строчка за строчкой (друг под другом)
* места, это что после черты обозначено
Изображения
Тип файла: png 528.png (39.2 Кб, 123 просмотров)
Русланчик вне форума Ответить с цитированием
Старый 12.02.2018, 21:17   #4
olegK<<
Пользователь
 
Аватар для olegK<<
 
Регистрация: 05.11.2017
Сообщений: 59
По умолчанию

Код:
SELECT DISTINCT id_book
olegK<< вне форума Ответить с цитированием
Старый 12.02.2018, 22:47   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Русланчик Посмотреть сообщение
вот я привожу результат выборки- данные одинаковые, поэтому их мне необходимо объединить, и просто места вывести строчка за строчкой (друг под другом)
на SQL такое получить сложно, да и не нужно.

гораздо проще и удобнее сделать так:
получать данные запросом, в запросе сортировать по id_book
а при выводе данных (в PHP, как я понимаю), просто выводить книгу один раз.

у Вас есть PHP код, в котором Вы выводите в HTML результаты запроса?
вот там и нужно внести маленькие поправки.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2018, 01:58   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Да с чего это сложно то?
Group by id_book
ADSoft вне форума Ответить с цитированием
Старый 13.02.2018, 09:40   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Да с чего это сложно то?
Group by id_book
Можно и так, а что будет в этом случае с полем, где находится название магазина (id_sigla) ?

если речь идёт про MySQL, тогда можно использовать GROUP_CONCAT()

но, если нужно получить таблицу представленного TC вида запросом с group_by будет на порядок сложнее, чем обрабатывать данные на клиенте.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2018, 11:39   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну еще один LEFT JOIN ....
не думаю что тот случай чтоб выносить на клиента
ADSoft вне форума Ответить с цитированием
Старый 14.02.2018, 12:44   #9
Русланчик
 
Регистрация: 07.10.2008
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Можно и так, а что будет в этом случае с полем, где находится название магазина (id_sigla) ?
Да вы правы GROUP_CONTACT прекрасно работает, но что делать, если нужна еще другая информация, зависящая от id_sigla?
Например по id_sigla - собственно определяется адрес
т.е 1 - Москва
2- Казань
3- Саратов
и так далее
GROUP_CONCAT- вывел только id_sigla - но вывел блестяще

Как доделать и решить проблему
пожалуйста, подскажите
Спасибо
Русланчик вне форума Ответить с цитированием
Старый 14.02.2018, 12:49   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Запросом не решить проблемы отображения. Не надо ни чего группировать. Выборка с повторами и с сортировкой по id_book. При отображении следить за изменением id_book и поступать соответственно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сгруппировать все ненулевые значения в начале массива Sergey_Belov Помощь студентам 2 04.04.2012 12:37
Вычисление среднего значения из нескольких полей одной записи yellowviolet Microsoft Office Access 4 16.11.2011 22:55
Выборка повторов illyuziy SQL, базы данных 18 16.11.2011 21:52
POSTGRE: выборка данных соотв. значению из той же таблицы Blondy SQL, базы данных 10 30.10.2011 14:57
Как запустить несколько копий одной и той же программы? murcot Помощь студентам 4 20.02.2009 11:28