И так проблема такова. Мне нужно объединить 3 запроса либо в 1, либо в 2 запроса. Чтобы как нить сократить их число. И так есть 4 таблицы: Код (Text): CREATE TABLE `category` ( `c_id` int(6) NOT NULL auto_increment, `c_title` varchar(100) NOT NULL, `c_name_en` varchar(100) NOT NULL, PRIMARY KEY (`c_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1; CREATE TABLE `goods` ( `g_id` int(6) NOT NULL auto_increment, `g_cid` int(6) NOT NULL, `g_count` int(6) NOT NULL, `g_price` int(6) NOT NULL, `g_status` int(1) default NULL, PRIMARY KEY (`g_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1; CREATE TABLE `information_weeding` ( `ig_id` int(6) NOT NULL auto_increment, `ig_wid` int(6) NOT NULL, `ig_gid` int(6) NOT NULL, `ig_text` text NOT NULL, PRIMARY KEY (`ig_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1; CREATE TABLE `weeding` ( `w_id` int(6) NOT NULL auto_increment, `w_vid` int(6) NOT NULL, `w_status` int(6) NOT NULL, `w_html` int(1) NOT NULL, `w_сonclusion_main` int(1) NOT NULL, `w_title` varchar(100) NOT NULL, `w_name_en` varchar(100) NOT NULL, `w_comment` text NOT NULL, PRIMARY KEY (`w_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1; И есть код которым я получил нужный результат: Код (Text): $result = $DB->sql_query("SELECT category.c_id, category.c_title, category.c_name_en, goods.g_id, goods.g_cid, goods.g_count, goods.g_price, goods.g_status FROM `goods` JOIN `category` ON category.c_id = goods.g_cid WHERE goods.g_status = '1' ORDER BY goods.g_id DESC LIMIT ".$NPS->Start('3',$_GET['page'],$num).", 3"); while($row = mysql_fetch_array($result)) { $parse->get_tpl("./templates/".$_CONFIG['template_name']."/shop/main_goods.tpl"); $parse->set_tpl('Price', $row['g_price']); $results = $DB->sql_query("SELECT * FROM `".$SQLprefix."weeding`"); while($wed = mysql_fetch_array($results)) { $resultss = $DB->sql_query("SELECT * FROM `".$SQLprefix."information_weeding` WHERE `ig_wid` = '".$wed['w_id']."' AND `ig_gid` = '".$row['g_id']."' "); if( $DB->sql_numrows() != 0 ) { while($inf = mysql_fetch_array($resultss)) { $parse->set_tpl($wed['w_name_en'], $wed['w_title'].": ".$inf['ig_text']); } } else { $parse->set_tpl($wed['w_name_en'], $wed['w_title'].": Не заполнено. "); } } $parse->tpl_parse(); $text.= $parse->template; } Вся беда в том, что у меня как видите, вышло в 3 запроса. А это не хорошо. Последние 2 таблицы должны работать совместно. Т.е weeding хранит информацию о полях. А information_weeding хранит значение этих полей для определенного ID. Задача такова надо вывести все товары из таблицы goods. Вывести названия категорий, которых хранятся в таблице category. Вывести все поля, которые хранятся weeding и их значение которые хранятся в information_weeding. Вот нужно уложиться в 1-2 запроса. Реально ли такое?
если нет такого варианта, что в какой-либо из таблиц может быть запись, а может и не быть, относящаяся к данным из другой таблицы: [sql]SELECT ... FROM category AS c, goods AS g, information_weeding AS i, weeding AS w WHERE g.g_id = i.ig_gid AND g.cid = c.c_id AND i.ig_wid = w.w_id[/sql]