<?
$query_author = mysql_query("SELECT DISTINCT `author`
FROM `you_mail`
") or die ("Ошибка -".mysql_error());
while($ind_author=mysql_fetch_assoc($query_author))
{
$count_author = mysql_query("SELECT `id`
FROM `you_mail`
WHERE `author`='".$ind_author['author']."'
AND `hide` = 'show'
") or die ("Ошибка - ".mysql_error());
$cnt_author = mysql_num_rows($count_author);
echo '
<a href="author.php?author='.$ind_author['author'].'">
'.$ind_author['author'].' ('.$cnt_author.')</a>
';
}
?>
Уместить в один. Если кто знает, подскажите... Спасибо.
Спустя 17 минут, 29 секунд (23.03.2011 - 18:47) Renden написал(а):
m4a1fox
Эм..а мне просто интересно, а зачем ты DISTINCT используешь в чем смыл?)
И мне не понятно в 1 запросе ты выбираешь Автора, во втором выбираешь его id.. Чет я немогу понять что ты хочешь получить данными запросами.
Эм..а мне просто интересно, а зачем ты DISTINCT используешь в чем смыл?)
И мне не понятно в 1 запросе ты выбираешь Автора, во втором выбираешь его id.. Чет я немогу понять что ты хочешь получить данными запросами.
Спустя 14 минут, 24 секунды (23.03.2011 - 19:01) m4a1fox написал(а):
Renden
Объясняю. Выбираю авторов, дабы они не повторялись в запросе №1. а во втором считаю их статьи и вывожу их (статей) кол-во.
Объясняю. Выбираю авторов, дабы они не повторялись в запросе №1. а во втором считаю их статьи и вывожу их (статей) кол-во.
Спустя 8 минут, 40 секунд (23.03.2011 - 19:10) sergeiss написал(а):
Так я не понял... Ты про JOIN что-нибудь читал или нет?
Спустя 1 минута, 57 секунд (23.03.2011 - 19:12) m4a1fox написал(а):
sergeiss
Да. Читал. И у меня вопрос. JOIN LEFT используется для для присоединения с другой таблицей. Можно ли делать его с той же таблицей, что и первая?
Да. Читал. И у меня вопрос. JOIN LEFT используется для для присоединения с другой таблицей. Можно ли делать его с той же таблицей, что и первая?
Спустя 4 минуты, 22 секунды (23.03.2011 - 19:16) m4a1fox написал(а):
Вот что понаписовал
<?
$query_author = mysql_query("SELECT DISTINCT a.`author`,
COUNT(a.`id`) AS `id_you_mail`
FROM `you_mail` a
LEFT JOIN `you_mail` b
WHERE a.`author` = b.`author`
GROUP BY a.`id`
") or die ("Ошибка -".mysql_error());
while($ind_author=mysql_fetch_assoc($query_author))
{
echo '
<a href="author.php?author='.$ind_author['author'].'">
'.$ind_author['author'].' ('.$ind_author['id_you_mail'].')</a>
';
}
?>
Спустя 19 минут, 16 секунд (23.03.2011 - 19:35) sergeiss написал(а):
Таблица "сама с собой" сджойненная - это возможно :) Но не с таким условием!!!
Ты получишь очень много комбинаций строк, на которые вряд ли расчитывал.
ON a.`author` = b.`author`
Ты получишь очень много комбинаций строк, на которые вряд ли расчитывал.
Спустя 57 секунд (23.03.2011 - 19:36) m4a1fox написал(а):
sergeiss
Значит, лучше оставить как есть? То есть как в самом первом посте этой темы?
Значит, лучше оставить как есть? То есть как в самом первом посте этой темы?
Спустя 2 минуты, 26 секунд (23.03.2011 - 19:39) sergeiss написал(а):
Цитата (m4a1fox @ 23.03.2011 - 20:36) |
Значит, лучше оставить как есть? То есть как в самом первом посте этой темы? |
Лучше сделать одним запросом. Только не так, как ты написал тут "последний" код.
Спустя 2 минуты, 44 секунды (23.03.2011 - 19:41) m4a1fox написал(а):
sergeiss
Тогда, как мне подсчитать, кол-во статей автора, после того как я выбрал его по методу DISTINCT. Вот еще вариант кода, но он не работает :(
Тогда, как мне подсчитать, кол-во статей автора, после того как я выбрал его по методу DISTINCT. Вот еще вариант кода, но он не работает :(
$query_author = mysql_query("SELECT DISTINCT a.`author`,
COUNT(b.`id`) AS `id_you_mail`
FROM `you_mail` a
LEFT JOIN `you_mail` b
ON a.`author` = b.`author`
WHERE a.`author` = b.`id`
GROUP BY a.`id`
") or die ("Ошибка -".mysql_error());
while($ind_author=mysql_fetch_assoc($query_author))
{
echo '
<a href="author.php?author='.$ind_author['author'].'">
'.$ind_author['author'].' ('.$ind_author['id_you_mail'].')</a>
';
}
Спустя 4 минуты, 53 секунды (23.03.2011 - 19:46) m4a1fox написал(а):
Ага. Разобрался. Надо было без WHERE. Спасибо.
Спустя 2 минуты, 47 секунд (23.03.2011 - 19:49) sergeiss написал(а):
m4a1fox - если мы говорим о запросе, то зачем ты приводишь окружающий его ПХП код?
Цитата (m4a1fox @ 23.03.2011 - 20:01) |
Выбираю авторов, дабы они не повторялись в запросе №1. а во втором считаю их статьи и вывожу их (статей) кол-во. |
ОК, думаем... А зачем тебе 2 запроса? Вот так где-то, наверное, одним запросом:
SELECT `author`, count(`id`) as `count_id`
from `your_mail`
group by `author`
Спустя 27 минут, 52 секунды (23.03.2011 - 20:17) m4a1fox написал(а):
sergeiss
У меня вопрос. Вы не применили DISTINCT. Он тут не нужен?
Наверно нет. Так как тут есть GROUP BY `author`. Так?
У меня вопрос. Вы не применили DISTINCT. Он тут не нужен?
Наверно нет. Так как тут есть GROUP BY `author`. Так?
Спустя 15 минут, 44 секунды (23.03.2011 - 20:33) sergeiss написал(а):
Да, в данном случае не нужен. И вообще :) Ты попробуй тот запрос и другой
Количество записей должно быть одинаковое. И список авторов тоже должен получиться одинаковый. Но в предыдущем запросе будет еще и количество записей, связанных с каждым автором.
select distinct `author` from `your_mail`
Количество записей должно быть одинаковое. И список авторов тоже должен получиться одинаковый. Но в предыдущем запросе будет еще и количество записей, связанных с каждым автором.