- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
есть три таблицы
пользователи, блог, комментарии к блогам
хочу вывести Х последних комментариев с их авторами
FROM bt_talk_comment tc
LEFT JOIN bt_talk t ON t.talk_id = tc.talk_id
LEFT JOIN bt_user u ON u.user_id = tc.user_id
WHERE tc.comment_activity=1
GROUP BY t.talk_id
ORDER BY tc.comment_id DESC
LIMIT 5
Выводит правильно все, кроме авторов, те в данном случае выводит в порядке убывания темы блога (те как надо) но вот автора подписывает первого кто написал коммент к блогу
Как побороть такое ?
Спасибо.
GROUP BY t.talk_id
вот тут у вас происходит то, что вы видите
Зачем вы ПОСТОЯННО используете left join ? много у вас комментариев "от НЛО" ?
GROUP BY t.talk_id
вот тут у вас происходит то, что вы видите
это понятно а как решить не понятно.
Зачем вы ПОСТОЯННО используете left join ? много у вас комментариев "от НЛО" ?
простите, немного не понял вопроса :)
вы бы поняли если бы знали разницу межде inner join/ join/ left join/ right join/ outer join и прочими вещами :)
лечится легко .. но для этого надо дампы таблиц
А вы не пробовали вместо GROUP BY использовать в начале (при выборке) DISTINCT(...)
простите, немного не понял вопроса
Я заметил, что некоторые использую слово LEFT везде - /ru/forum/403218. В моей практике было еще пару случаев. То есть вы четвертый. Кто вас этому учит?
Обычно метод выполнения когда mysql ожидает null-значения отличается и значительно хуже простого объединения.
вы бы поняли если бы знали разницу межде inner join/ join/ left join/ right join/ outer join и прочими вещами
в двух словах можно, лично я никогда особой разницы не видел. :)
дамп с данными или просто дамп таблиц?
сейчас подготовлю
А вы не пробовали вместо GROUP BY использовать в начале (при выборке)DISTINCT(...)
не пробовал, но сомневаюсь что сработает. сейчас попробую..
в двух словах можно, лично я никогда особой разницы не видел.
inner join - это по сути тоже что и = в where,
join вроде тоже самое,
left join - это когда берётся одна таблица, и к ней присоединяется вторая, без оглядки есть там соответствия или нет, когда нет, то в эту ячейку ставится null,
right join - тоже самое только таблицы по смыслу местами меняются
outer join - сейчас лень смотреть, никогда не испльзую, не помню. :)
уговорили, помогу =)
http://www.codinghorror.com/blog/archives/000976.html
inner join - это по сути тоже что и = в where,
join вроде тоже самое,
left join - это когда берётся одна таблица, и к ней присоединяется вторая, без оглядки есть там соответствия или нет, когда нет, то в эту ячейку ставится null,
right join - тоже самое только таблицы по смыслу местами меняются
outer join - сейчас лень смотреть, никогда не испльзую, не помню.
точно такими же знаниями обладаю и я по ЖОЙНАМ, но я так и не понял как это может помочь?!
Miracle добавил 04.10.2009 в 15:39
уговорили, помогу =)
http://www.codinghorror.com/blog/archives/000976.html
спасибо за картинки, наглядно, но что бы помогло так не сказал бы :)