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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2019, 17:33   #1
Sergey_555
Новичок
Джуниор
 
Регистрация: 22.12.2014
Сообщений: 1
По умолчанию Дублирование строк при выборке из двух таблиц

Здравствуйте.
Помогите разобраться с выборкой из двух таблиц.
Есть таблицы tb_prod и tb_user_prod. В tb_prodхранятся продукты, а в tb_user_prod – здесь id продукта, который добавил в свой список пользователь и id самого пользователя.




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





Выбираю следующим образом
Код:
«SELECT vse_pr.*, user_pr.id_prod_user AS user_produkt
FROM tb_prod vse_pr
LEFT JOIN tb_user_prod user_pr
ON vse_pr.id_prod = user_pr. id_prod_user AND user_pr.id_user = (здесь id пользователя)
WHERE vse_pr.active_prod = '1'
»
( Надеюсь не ошибся при написании коммента )
Теперь в зависимости, что при выборке в поле user_produkt, я подсвечиваю нужные продукты.
Проблема заключается в том, что если в таблице tb_user_prodдопустить два одинаковых поля ( поле 4 и 5 ), то при выводе всех записей “Продукт 1” будет выведен два раза ( или столько раз сколько будет записан для конкретного пользователя ).
Как вариант, сейчас перед вставкой проверяю существует ли такая запись, но хотелось бы разобраться как исключить повторный вывод продукта (дублирование) при наличии нескольких одинаковых записей в таблице tb_user_prod.
Sergey_555 вне форума Ответить с цитированием
Старый 04.02.2019, 08:17   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

добавляете в конце GROUP BY vse_pr.id
еще как вариант можно DISTINCT использовать
ADSoft вне форума Ответить с цитированием
Старый 08.02.2019, 14:36   #3
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Я особо не вчитывался в код, но предложу свою мысль. сделайте выборку записей нужно пользователя а затем клейте ее. так будет правильнее на мой взгляд. раз уж вы все равно подставляете id пользователя нафига клеить все а потом сеить по пользователю?
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема в выборке из двух таблиц запросом SQL Server 2012 qpash SQL, базы данных 2 19.03.2014 10:04
Сортировка и поиск, Добавление и удаление записей в выборке из 6 разных таблиц студентка_диплом БД в Delphi 7 07.04.2012 21:37
Подсчитать кол-во строк в выборке Darlee БД в Delphi 2 11.12.2011 15:15
Не отображаются русские символы при выборке данных из таблиц MySQL. vedro-compota PHP 0 23.09.2010 17:43
Запрос по выборке таблиц в Accesse. Droid БД в Delphi 3 25.11.2009 15:55