Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите объединить два SELECT-запроса в один
 
 автор: linux_hak   (08.04.2008 в 00:03)   письмо автору
 
 

есть таблица бд
id, title, parentid

есть переменная $cid
делаю запрос:
list($c_id, $c_title, $c_parentid) = $db->sql_fetchrow($db->sql_query("SELECT id, title, parentid FROM  categories WHERE id='$cid'"));
list($a_title) = $db->sql_fetchrow($db->sql_query("SELECT title FROM categories WHERE cid='$c_parentid'"));


как объединить запросы в один? что то в сложные запросы не догоняю. помогите разобраться на примере
спасибо

   
 
 автор: cheops   (08.04.2008 в 12:47)   письмо автору
 
   для: linux_hak   (08.04.2008 в 00:03)
 

Хм... можно попробовать следующим образом
<?php
  $query 
"SELECT id, title, parentid FROM  categories WHERE id='$cid' OR cid='$c_parentid'";
  list(
$c_id$c_title$c_parentid) = $db->sql_fetchrow($db->sql_query($query));
?>

   
 
 автор: linux_hak   (09.04.2008 в 00:58)   письмо автору
 
   для: cheops   (08.04.2008 в 12:47)
 

не совсем верно. сначала делается первый запрос, инфа о подкатегории.
затем второй запрос, наименование родительской категории.
хотелось бы эти два запроса объединить, или считаете не нужным?

   
 
 автор: mechanic   (08.04.2008 в 14:31)   письмо автору
 
   для: linux_hak   (08.04.2008 в 00:03)
 

в данном случае их незачем объединять..
выбираем инфу про категорию $cid, получаем 1 строку
потом выбираем все названия ее подкатегорий, получаем много строк..
а вообще смотря какова цель!
можно конечно сделать left join, но тогда в каждом выбранном ряду с подкатегорей будет инфа о родительской категории. зачем эта избыточность..

   
 
 автор: linux_hak   (09.04.2008 в 00:55)   письмо автору
 
   для: mechanic   (08.04.2008 в 14:31)
 

это для тега title
хотя может есть какие то другие решения...

   
 
 автор: mechanic   (09.04.2008 в 12:11)   письмо автору
 
   для: linux_hak   (09.04.2008 в 00:55)
 

т.е. надо получить заголовки текущей категории и родительской категории.. тогда так:
SELECT cur.title as title, up.title as parent_title FROM categories up, categories cur WHERE cur.id = $cid and cur.cid = up.id;

и хорошо бы cid сделать индексом, если еще не..

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования