Kapralez Posted November 26, 2014 Share Posted November 26, 2014 Чтобы не создавать новую тему...Подскажите пожалуйста синтаксис вложенных запросов.Есть прямой запрос к базеSELECT * FROM `ibf_pickems_picks` WHERE `gameid` IN ( SELECT `id` FROM `ibf_pickems_games` WHERE `weekid` =57 AND `userid` =8554 ) Хочу разместить данный запрос в шаблоне. Какой у него будет синтаксис $this->DB->build( array('select' => 't.*', и т.д ?С простыми запросами проблем нет, а вот на этом споткнулсяСпасибо! Link to comment Share on other sites More sharing options...
siv1987 Posted November 26, 2014 Share Posted November 26, 2014 Хочу разместить данный запрос в шаблоне. В шаблоне вообще размещать любые запросы не самая удачная идея. И на будущие, если вопрос не касается сабжа - в данном случае экспорт емайлов, нужно спрашивать в отдельной теме. array( 'select' => 'p.*', 'from' => array( 'pickems_picks' => 'p' ), 'add_join' => array( array( 'from' => array( 'pickems_games' => 'g'), 'where' => 'g.id=p.gameid', 'type' => 'inner', ) ), 'where' => 'weekid=57 AND userid=8554' ) Конструкция выше аналогична нативному SQL запросу (используем джоин вместо вложенного подзапроса): SELECT p.* FROM ibf_pickems_picks p INNER JOIN ibf_pickems_games g ON g.id=p.gameid WHERE weekid=57 AND userid=8554При составлении запроса через конструктор, указывать префикс таблиц не нужно.Для фетчинга одной записи: $row = $this->DB->buildAndFetch( QUERY );Для множество записей $this->DB->build( QUERY ); $this->DB->execute(); while( $row = $this->DB->fetch() ) 1 Link to comment Share on other sites More sharing options...
Trotor Posted November 26, 2014 Share Posted November 26, 2014 В шаблоне вообще размещать любые запросыПочему? Базу сильно нагружают? Link to comment Share on other sites More sharing options...
Kapralez Posted November 26, 2014 Author Share Posted November 26, 2014 Спасибо, все работает! База некрупная, посещаемость невысокая - нагрузка не должна сильно увеличиться Link to comment Share on other sites More sharing options...
siv1987 Posted November 26, 2014 Share Posted November 26, 2014 Почему? Базу сильно нагружают?Ну хотя бы потому что http://ipbskins.ru/forum/topic10752.html/page__view__findpost__p__69935А говно запросом можно одинаково нагрузить базу как из шаблона, так и из скрипта. В шаблонах можно всунуть запрос в каком нибудь шаблоне, который крутится по циклу (тот же userInfoPane например) и нагенерировать кучу запросов на странице. 1 Link to comment Share on other sites More sharing options...
danilka Posted November 27, 2014 Share Posted November 27, 2014 Почему? Базу сильно нагружают?Потому что это шаблон. Link to comment Share on other sites More sharing options...
Trotor Posted November 27, 2014 Share Posted November 27, 2014 Ну хотя бы потому что http://ipbskins.ru/forum/topic10752.html/page__view__findpost__p__69935Полезная информация, спасибо. А говно запросом можно одинаково нагрузить базу как из шаблона, так и из скрипта. В шаблонах можно всунуть запрос в каком нибудь шаблоне, который крутится по циклу (тот же userInfoPane например) и нагенерировать кучу запросов на странице.А как можно просканировать форум на наличие таких тяжёлых запросов? Link to comment Share on other sites More sharing options...
siv1987 Posted November 27, 2014 Share Posted November 27, 2014 Включить логирования медленных запросов.http://ipbskins.ru/forum/topic12992.html 1 Link to comment Share on other sites More sharing options...
Trotor Posted November 27, 2014 Share Posted November 27, 2014 Включить логирования медленных запросов.На уровне сервера включено. Решил последовать вашему совету и включить на форумном уровне:define( 'IPS_SQL_FIND_SLOW_MODE', 0.5 );А где отчёт просматривать на форумном уровне? Link to comment Share on other sites More sharing options...
siv1987 Posted November 27, 2014 Share Posted November 27, 2014 На уровне сервера включено.Тогда нет смысла делать это на форуме. А где отчёт просматривать на форумном уровне?В /cache/sql_slow_log_*.cgi ОффтопСамое интересное, что автор там по сей день живет с тормозами в ип.контенте. Сам форум вроде работает у него бодро. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now