- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Запрос:
SELECT *
FROM T1
LEFT JOIN T2 ON T1.Id = T2.SpId
WHERE Active =1
AND PreDesc != ''
ORDER BY Capt, Caption
LIMIT 0, 50
В результате некоторые объекты (уникальные Id) выдает два раза. Если убрать LEFT JOIN, то все Ок. Одноименных полей в таблицах T1 и T2 нет. MySQL ошибок нет. Как такое может быть, в чем проблема? Всю голову поломал, никак не догоню...
Потому что, при указании LEFT JOIN - выполняется LEFT OUTER JOIN, если вообще без JOIN, т.е WHERE t1.some_id=t2.other_id, конструкция эквивалентна INNER JOIN ON... Что и требуется в данном случае.
Хм. А с чего мне тут нужен INNER? Нужен как раз LEFT, чтобы все значения из T1 брались, в т.ч. те, для которых нет соответствия в T2.
Ну так в случае LEFT JOIN строки для значений из левой таблицы, которым нет соответствия в правой, будут присутствовать в результате выборки с полями из правой таблицы установленными в NULL, отсюда и строки с повторяющимися id. Или речь о том, что в результате присутствуют полные дубли строк?
Ну так в случае LEFT JOIN строки для значений из левой таблицы, которым нет соответствия в правой, будут присутствовать в результате выборки с полями из правой таблицы установленными в NULL
Мне так и нужно.
Или речь о том, что в результате присутствуют полные дубли строк?
Вот именно.
На самом деле перепутал по поводу LEFT JOIN, в случае если действительно поля id уникальные в обоих таблицах, то повторяющихся в выборке быть не должно. Надо бы на describe таблиц взглянуть. И еще какая версия mysql?
Версия 5.0.77.
Повторы идут там, где во второй таблице несколько одинаковых значений SpId. Т.е. ощущение, как будто пашет RIGHT JOIN, а не LEFT.
что если добавить distinct?..
что если добавить distinct?..
А куды его там?
select distinct ...
Так при Select Distinct на выходе других полей ж вообще не будет. Т.е., в случае РНР, будет массив с одним полем (которое Distinct), а не со всеми мне необходимыми.