powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как работает LEFT JOIN?
6 сообщений из 6, страница 1 из 1
Как работает LEFT JOIN?
    #32400093
GreenMS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть следующий запрос:
SELECT n.id, n.n_date, n.topic, n.text, count(COALESCE(c.id,0)) as cnt from news as n LEFT JOIN comments AS c ON c.n_id=n.id GROUP BY id ORDER BY n_date desc, id desc LIMIT 10

В мануле MySQL написано:
If there is no matching record for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table.

То есть если для строки из news не попадется ничего в comments, то cnt должны быть 0. Но почему-то так не происходит. Выбираются только записи из news, у которых есть соответсвующие строки в comments. :-\
...
Рейтинг: 0 / 0
Как работает LEFT JOIN?
    #32400163
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в ms sql есть такая конструкция
left outer join
- может подойдет?
...
Рейтинг: 0 / 0
Как работает LEFT JOIN?
    #32400297
GreenMS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, не подходит. Это все таки MySQL :-(
...
Рейтинг: 0 / 0
Как работает LEFT JOIN?
    #32400460
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. left join - это и есть краткое наименование left outer join.
2. что будет, если убрать count, group by и coalesce?
3. cnt не должен быть 0. count считает и 0, и null, ничего не пропускает. надо наверно было сделать sum(if(isnull(c.id),0,1))
...
Рейтинг: 0 / 0
Как работает LEFT JOIN?
    #32400864
EL#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EL#
Гость
попробуй жместо ON c.n_id=n.id написать ON n.id=c.n_id
или вместо LEFT JOIN написат RIGHT JOIN
...
Рейтинг: 0 / 0
Как работает LEFT JOIN?
    #32400882
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а также вместо select update

шутка.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как работает LEFT JOIN?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]