У меня есть articles
стол и categories
таблицу, как это:Как получить самую последнюю дату статьи для каждой категории
articles
-----------------------------------------------
| id | datetime | title | categoryid | status |
-----------------------------------------------
categories
-------------
| id | name |
-------------
Мне нужно, чтобы получить самые последние статьи датировать из каждой категории в выберите, как :
result
----------------------------------------------------------
| category id | category name | most recent article date |
----------------------------------------------------------
Результат должен содержать все категории + самую последнюю статью (с статусом = 0) для каждой категории.
Его должно привести так же, как select * from categories
PLUS новую строку, отображающую datetime
из наиболее recente статьи категории НО ТОЛЬКО ЕСЛИ СТАТЬЯ статусных 0.
Это ясно?
Причина, по которой мне это нужно, потому что я пытаюсь создать динамическую карту сайта, и мне нужно время последней статьи для каждой категории, чтобы показать тег <lastmod>
для списка категорий.
$sql = mysql_query(".....?......");
while ($string = mysql_fetch_array($sql)){?>
<url>
<loc>http://www.url.com/<?echo $string['id'];?>/<?echo generate_seo_link($string['name']);?>/</loc>
<priority>0.5</priority>
<changefreq>daily</changefreq>
<lastmod><? echo date("d/m/Y H:i:s", strtotime($string['date'])); ?></lastmod>
</url>
<?}
С каким SQL-предложением вы пытались? Возможный дубликат: http://stackoverflow.com/questions/3869426/mysql-join-most-recent-matching-record-from-one-table-to-another – Jon