Список лет по сообщениям из нескольких таблиц

virakochi

Устал
Список лет по сообщениям из нескольких таблиц

Суть такова: есть набор таблиц, в каждой из которых есть атрибут типа DATETIME. Необходимо выбрать список всех уникальных year(<datetime>) по всем таблицам.
Не хочется делать отдельно запрос по каждой таблице.
Подскажите, как это (если можно) сделать с помощью одного запроса.
 

Demiurg

Guest
>Не хочется делать отдельно запрос по каждой таблице.
придется. Или используй union, но это будет тоже самое по сути.
 

virakochi

Устал
Спасибо. Жаль(

-~{}~ 27.05.04 15:45:

То есть сложно придумать что-то лучше чем это?
PHP:
function get_years(){
	global $conn;
	$sql_query_news = "SELECT DISTINCT YEAR(news_date_published) AS 'y' FROM ".T_NEWS." WHERE news_active=1";
	$sql_query_analytics = "SELECT DISTINCT YEAR(news_date_published) AS 'y' FROM ".T_ANALYTICS." WHERE news_active=1";
	$sql_query_announces = "SELECT DISTINCT YEAR(news_date_published) AS 'y' FROM ".T_ANNOUNCES." WHERE news_active=1";
	$sql_query_comments = "SELECT DISTINCT YEAR(gb_date_published) AS 'y' FROM ".T_GUESTBOOK." WHERE gb_active=1";
	
	$list = array_merge(
						$conn->getAll($sql_query_news),
						$conn->getAll($sql_query_analytics),
						$conn->getAll($sql_query_announces),
						$conn->getAll($sql_query_comments)
						);
	$result = array();
	foreach ($list as $k => $v)
		if (!in_array($v['y'], $result)) $result[] = (int)$v['y'];
	sort($result, SORT_NUMERIC);
	return $result;}
(PEAR::DB)
 
Сверху