powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Количество строк по id из другой таблицы
14 сообщений из 14, страница 1 из 1
Количество строк по id из другой таблицы
    #38554904
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток )
подскажите что делаю неправильно
есть две таблицы в одной хранятся записи в другой комментарии к записям, запрашиваю записи и количество комментариев к ним
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT record.*, 
  users.user_nickname,
  COUNT(comments.id) AS comments_count
FROM record
  LEFT JOIN users ON users.user_id = record.user
  LEFT JOIN comments ON comments.post_id = record.id
WHERE record.post_type = 'post' ORDER BY record.date DESC LIMIT 0 , 5;


запрос возвращает только самую первую запись, ошибок нет
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38554952
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа,

GROUP BY забыли?
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38554957
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не трудно покажите пример, я уже замучился, что не пробовал не выходит (
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555009
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа,

покажите пример исходных данных и
ожидаемый результат.
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555019
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

таблица record
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555021
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

таблица comments
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555022
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращается массив всех элементов
Array
(
[0] => Array
(
[id] => 3365
[wp_id] =>
=>
[seo_title] =>
[seo_description] =>
[topic_title] =>
[text] =>
[cat_teg] => {"cat":["2"],"teg":["6","8"]}
[user] => 1
[views] => 12150
[date] => 1340382079
[modified_page] => 1340382079
[post_status] => publish
[post_type] => post
[count_comments] => 0
[user_nickname] => Приколист
)
[1] => Array
(
)
и так далее

нужно к каждой записи добавить
[comments_count] =>
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555029
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа,

ну добавьте груп бу рекорд.ИД

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT record.*, 
  users.user_nickname,
  COUNT(comments.id) AS comments_count
FROM record
  LEFT JOIN users ON users.user_id = record.user
  LEFT JOIN comments ON comments.post_id = record.id
WHERE record.post_type = 'post' 
GROUP BY record.id
ORDER BY record.date DESC
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555037
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

Спасибо, работает :)
только запрос стал тяжелее, записей больше 3000 плюс коменты, наверно нужно логику кода менять
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555052
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа,

если вам надо только первые 5 или 50,
тогда выберите их сначала а потом
делайте связку для подсчета, примерно так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
*,
(selec cont(1) cnt from coments c where c.post_id = zz.id) cnt_com
from
(
select * from posts p
order by p.date desc
limit 5
) zz
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555056
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

Круто, спасибо :)
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555100
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
*,
(selec cont(1) cnt from coments c where c.post_id = zz.id) cnt_com
from
(
select * from posts p
order by p.date desc
limit 5
) zz


А зачем здесь from-подзапрос? Вычисления в части select идут на последнем этапе (уже после order by). Достаточно
Код: sql
1.
2.
select p.*, (selec count(*) cnt from coments c where c.post_id = p.id) cnt_com
from posts p order by p.date desc limit 5;
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38555217
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папатолько запрос стал тяжелее, записей больше 3000 плюс коменты, наверно нужно логику кода менять

не видно атрибутов wp_id - тоже unsigned?

Короче, тип полей для связи должен быть идентичным если не хотите думать что должна сделать СУБД чтобы сравнить два разных типа, на что уйдет время и память.

wp_id int unsigned not null
comments_wp_id int unsigned not null
...
Рейтинг: 0 / 0
Количество строк по id из другой таблицы
    #38558135
Фотография Папа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
deblogger,

Спасибо за совет, вообще эти столбики будут удалены это я переписывал базу из wordpress нужны были старые id-шники :)
Но, важность связываемых типов столбцов я обязательно учту :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Количество строк по id из другой таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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