

Конечно, использовать LEFT JOIN. Посмотрите, как в самом MODx делают разные запросы.
Может есть вариант лучше?
Quote from: Alextekkk at Apr 04, 2011, 12:36 AMКонечно, использовать LEFT JOIN. Посмотрите, как в самом MODx делают разные запросы.
Может есть вариант лучше?
.........
Тут проверки входных GET параметров $p и $tag и их обработка
.........
А тут собственно сам запрос:
$site_content=$modx->getfulltablename('site_content'); //Получаем правильные
$keyword_xref=$modx->getfulltablename('keyword_xref'); //имена
$site_keywords=$modx->getfulltablename('site_keywords');//таблиц
//и собираем сам запрос
$sql="SELECT ";
$sql.=$site_content.".id, ";
$sql.=$site_content.".pagetitle, ";
$sql.=$site_content.".longtitle, ";
$sql.=$site_content.".description, ";
$sql.=$site_content.".introtext, ";
$sql.=$site_content.".content, ";
$sql.=$site_content.".parent, ";
$sql.=$site_content.".publishedon, ";
$sql.=$keyword_xref.".content_id, ";
$sql.=$keyword_xref.".keyword_id, ";
$sql.=$site_keywords.".id, ";
$sql.=$site_keywords.".keyword ";
$sql.="FROM ".$site_content.", ".$keyword_xref.", ".$site_keywords." ";
$sql.="WHERE ";
$sql.=$keyword_xref.".keyword_id=".$site_keywords.".id AND ";
$sql.=$site_keywords.".keyword=\"".$tag."\" AND ";
$sql.=$keyword_xref.".content_id=".$site_content.".id ";
$sql.="ORDER BY ".$keyword_xref.".keyword_id DESC ";
$sql.="LIMIT ".$start.",".$num."";
thanks!
Это один из вариантов JOIN, в котором опущено данное ключевое слово – http://www.mysql.ru/docs/man/JOIN.html
Интересно узнать чем плох такой вариант
Quote from: Paprikas at Apr 04, 2011, 12:23 PMЭто один из вариантов JOIN, в котором опущено данное ключевое слово – http://www.mysql.ru/docs/man/JOIN.html
Интересно узнать чем плох такой вариант
Затрудняюсь сказать, как MySQL обрабатывает разные варианты и что оптимизируется лучше, но сам предпочитаю явно указывать JOIN.