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

Форум MySQL

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

 

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

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

тема: Насколько правильный запрос?
 
 автор: gOFREe   (09.07.2009 в 14:38)   письмо автору
 
 

Здравствуйте.
Хотел бы узнать у знающих людей.
Суть такая, если человек входит в раздел фирмы, то сверху отображается описание этого раздела, который берется из таблицы ".$db_perfix."coment, а все остальное берется из ".$db_perfix."firm.
Насколько правильно я сделал запрос и как можно снизить нагрузку? выслушаю все советы, спасибо

<?
$result 
dbquery("SELECT ".$db_perfix."firm.*,".$db_perfix."coment.* 
                  FROM "
.$db_perfix."firm,".$db_perfix."coment 
                  WHERE "
.$db_perfix."coment.razdC = 'firm' 
                  ORDER by "
.$db_perfix."firm.nameF ASC");
?>

  Ответить  
 
 автор: Trianon   (09.07.2009 в 14:45)   письмо автору
 
   для: gOFREe   (09.07.2009 в 14:38)
 

А можно спросить то же самое, но без этого ".$db_perfix." символьного мусора?
Или Вы полагаете, что он облегчает восприятие сути вопроса?

можно даже без dbquery, уж коль скоро это частная функция....

  Ответить  
 
 автор: gOFREe   (09.07.2009 в 14:52)   письмо автору
 
   для: Trianon   (09.07.2009 в 14:45)
 

Можно ;)
Суть такая, если человек входит в раздел фирмы, то сверху отображается описание этого раздела, который берется из таблицы coment, а все остальное берется из firm.
Насколько правильно я сделал запрос и как можно снизить нагрузку? выслушаю все советы, спасибо


<?
$result 
"SELECT firm.*,coment.* 
                  FROM firm,coment 
                  WHERE coment.razdC = 'firm' 
                  ORDER by firm.nameF ASC"
;
?> 

  Ответить  
 
 автор: Trianon   (09.07.2009 в 15:02)   письмо автору
 
   для: gOFREe   (09.07.2009 в 14:52)
 

Во-1х, этот текст что угодно (request, sql, query ), но еще не result.
во 2x , таблицы firm и coment никак не связаны, и согласно операции 'запятая', сервер просто построит декартово произведение этих таблиц. Что Вам , наверняка, не нужно.

Вместо запятой лучше использовать форму LEFT JOIN ... ON ... указывая условие соответствия строк одной таблицы строкам другой.

FROM firm LEFT JOIN coment ON firm.id = comment.firm_id
или как-то так.

Если строки одной таблицы со строками другой связи не имеют, извлекать данные из них именно в одном запросе - абсолютно ничем не оправдано.

  Ответить  
Rambler's Top100
вверх

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