Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 26.02.2011, 00:02   #1
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию Помощь с запросом SQL

Собственно есть запрос в БД который ищет в таблице region есть ли совпадения с таблицей dilers по полю region_id

PHP код:
$query $db->query"SELECT r.region_id, r.region_rus, d.region_id
    FROM region AS r
    LEFT JOIN dilers AS d ON(d.region_id = r.region_id)
    WHERE cid='"
.$id."'"); 
Но тут встала проблема если несколько записей d.region_id имеют одно и тоже значение то и выводится название несколько раз вот отсюда вопрос как сделать что бы регион не дублировался несколько раз??? а выводился только один
avgaz вне форума   Ответить с цитированием
Старый 26.02.2011, 00:06   #2
Эксперт
 
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 242
eresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущее
По умолчанию

Видимо использовать INNER JOIN вместо LEFT JOIN
__________________
Партнёрка знакомств с блоком SAPE. Сапа без расходов на хостинг!
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS)
eresik вне форума   Ответить с цитированием
Старый 26.02.2011, 00:26   #3
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от eresik Посмотреть сообщение
Видимо использовать INNER JOIN
Увы нет, результат возвращает повторения
avgaz вне форума   Ответить с цитированием
Старый 26.02.2011, 00:32   #4
Эксперт
 
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 242
eresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущее
По умолчанию

Цитата:
Сообщение от avgaz Посмотреть сообщение
Увы нет, результат возвращает повторения
Ну тогда - SELECT DISTINCT

честно говоря - советую не вникая в запрос
__________________
Партнёрка знакомств с блоком SAPE. Сапа без расходов на хостинг!
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS)
eresik вне форума   Ответить с цитированием
Старый 26.02.2011, 08:26   #5
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Я использую GROUP BY
PHP код:
$query $db->query"SELECT r.region_id, r.region_rus, d.region_id 
    FROM region AS r 
    LEFT JOIN dilers AS d ON(d.region_id = r.region_id) 
    WHERE cid='"
.$id."' GROUP BY r.region_id"); 
Правда логика запроса непонятна.
Вам надо выбрать дилера региона?
А если их несколько, как в вашем случае?
ahsinis вне форума   Ответить с цитированием
Старый 26.02.2011, 10:47   #6
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от ahsinis Посмотреть сообщение
Вам надо выбрать дилера региона?
А если их несколько, как в вашем случае?
Наоборот Регионы в которых есть дилер, но если в регионе два дилера то и регион два раза выбирается SELECT DISTINCT помогла
avgaz вне форума   Ответить с цитированием
Старый 26.02.2011, 16:17   #7
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Цитата:
Наоборот Регионы в которых есть дилер
Тогда надо использовать INNER JOIN, а не LEFT JOIN.

ЗЫ Если база спроектирована правильно, то у региона не может несколько раз один и тот же дилер повторяться и запрос в стартовом посте будет выбирать тоже самое что и с SELECT DISTINCT, который просто отсекает одинаковые записи.
ahsinis вне форума   Ответить с цитированием
Старый 27.02.2011, 02:51   #8
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 213
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

Цитата:
Сообщение от ahsinis Посмотреть сообщение
ЗЫ Если база спроектирована правильно, то у региона не может несколько раз один и тот же дилер
А речь и не идет о одном и том же дилере, в регионе разные дилеры и запрос должен выводить регионы в которых присутствуют дилеры и проблема если в регионе несколько дилеров то и сам регион дублируется.
avgaz вне форума   Ответить с цитированием
Старый 27.02.2011, 08:24   #9
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 236
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

Цитата:
Сообщение от avgaz Посмотреть сообщение
запрос должен выводить регионы в которых присутствуют дилеры и проблема если в регионе несколько дилеров то и сам регион дублируется.
для этого надо использовать INNER JOIN или условие WHERE d.region_id IS NOT NULL
ahsinis вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите с SQL-запросом sylex Разработка и сопровождение сайтов 8 21.03.2010 12:06
Googlebot палит сайты на продажноть? С запросом ?hren=linkopomoika HomoSAPEns Курилка 20 03.10.2009 00:43
Куча поисковых рефов с запросом "это пример страницы в wordpress. можно написать..." apple Курилка 3 24.08.2009 17:07
Проверка Яндексации запросом к кэшу яндекса Alexey Яндекс 10 21.08.2009 20:15
ищу помощь chaynik Вопросы от новичков 3 01.06.2009 14:13


Часовой пояс GMT +3, время: 21:41.