|
|
|
| Здравствуйте, у меня такой вопрос: Как выполнить такой запрос?
Есть таблица А и таблица Б. Таблица Б связана по ключу pr_id с id таблицы А (Таблица А - новость, таблица Б-коменты к той или иной новости)
В наблице Б есть поле оценка новости (rating)
Как вывести таблицу А с суммой rating для конкретной новости? И ноль если коментов нет
Пример
A
id | name
1 | новость 1
2 | новость 2
3 | новость 3
Б
id | name | pr_id | rating
1| комент1| 3 | 5
2| комент2| 3 | 4
3| комент3| 3 | 3
4| комент4| 1 | 1
5| комент5| 1 | 2
результат
id | name | rating
1 | новость 1 | 3
2 | новость 2 | 0
3 | новость 3 | 12 | |
|
|
|
|
|
|
|
для: stasmus
(17.10.2007 в 17:49)
| |
<?
$query = mysql_query("SELECT A.id as board_id, A.name as board_name, A.*, B.* FROM А as A, Б as B WHERE B.pr_id = A.id ORDER by rating ASC");
echo "<table>";
echo "<tr><td>#ID</td><td>name</td><td>rating</td></tr>";
while($board = mysql_fetch_assoc($query))
{
echo "<tr>";
echo "<td>".$board['board_id']."</td>";
echo "<td>".$board['board_name']."</td>";
if ($board['rating']) echo "<td>".$board['rating']."</td>"; else echo "<td> 0 </td>";
echo "</tr>";
}
echo "</table>";
?>
|
Могу ошибиться. Очень неудобно мне сейчас писать... | |
|
|
|
|
|
|
|
для: stasmus
(17.10.2007 в 17:49)
| | Сделаете так:
select n.name, SUM(IFNULL(c.rating,0))
from news as n LEFT JOIN comment c ON (n.id = c.pr_id)
group by n.id
order by n.name;
|
| |
|
|
|
|
|
|
|
для: oradev
(18.10.2007 в 12:44)
| | Большое спасибо! | |
|
|
|