[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Из двух таблиц получить один результат
Dno
Здравствуйте.

Есть таблица Публикаций на сайте. publications
Поля
id
title
description
img
keywords
date
author
authorid
popular


Есть таблица комментариев comments, в котором есть поле, pubid, которое говорит к какой публикации принадлежит комментарий.

Вытаскиваю публикации таким способом:
// Вывод популярных статей
function PopularPublications($popular){
global $db;
$sql = "SELECT * FROM publication WHERE popular = '$popular' ORDER BY id DESC";
$res = mysqli_query($db, $sql);
while($row = mysqli_fetch_assoc($res))
$publication[] = $row;
return $publication;
}


И получаю массив:
[publication] => Array
(
[id] => 1
[title] => заголовок
[description] => описание
[img] => путь до картинки
[keywords] => ключевые, слова
[date] => 01 Ноя 14
[author] => Dno
[authorid] => 1
[popular] => 1
)

А как узнать сколько комментариев к данной статье? Как правильно отправить запрос? Эххх... Замучался, подскажите ДОБРЫЕ ЛЮДИ. :unsure:
johniek_comp
select count(comments.pubid) as comments, publication.*
left join publication
on publication.id = comments.pubid
where publication.popular = '{{popular}}'
order by publication.id desc


_____________
user posted image
Dno
johniek_comp, такой метод не сработал. Тут мне подсказали такой:

SELECT 
*,
(
SELECT COUNT(id) FROM comments WHERE pubid = publication.id GROUP BY pubid) AS count
FROM
publication
WHERE
popular = '$popular'
ORDER BY
id DESC

Вроде бы нормально, эхххх... Побежал учить sql запросы
johniek_comp
Dno
почему не сработал? что выдает

_____________
user posted image
bestxp
SELECT 
*,
pub.count AS count
FROM
publication
left join
(SELECT COUNT(id) FROM comments GROUP BY pubid) as pub on pub.pubId = publication.id
WHERE
popular = '$popular'
ORDER BY
id DESC


а еще так можно как вариант
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.