Забыли пароль?
Запросите новый здесь.

Автор темы: lucky
ID темы: 2223
Информация:
Тема содержит 7 сообщения, была просмотрена 3060 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » MySQL
 Распечатать тему
Как объединить три запроса в один
lucky
Доброго времени суток.

Строю карту сайта, собираю ссылки из категорий, статей, страниц. Соответственно данные хранятся в трёх таблицах. Получается как бы три запроса :

Загрузить источник  GeSHi: PHP
  1. $smresult = mysql_query("SELECT articles.`id`, articles.`title`, articles.`date`
  2. FROM `articles`
  3. ORDER BY articles.`id` DESC");
  4.  
  5.  
  6. $smresult2 = mysql_query("SELECT category.`name_url`
  7. FROM `category`
  8. ORDER BY category.`id_category` DESC");
  9.  
  10.  
  11. $smresult3 = mysql_query("SELECT page.`name_url`
  12. FROM `page`
  13. ORDER BY page.`id_page` DESC");
  14.  
  15. if((mysql_num_rows($smresult) > 0) && (mysql_num_rows($smresult) < 49900))
  16. {
  17. do
  18. {
  19.  
  20. $xmlcode .= "\t<url>\n\t\t<loc>".$site.$link."</loc>\n\t\t<lastmod>".$myrow['date']."</lastmod>\n\t\t<changefreq>monthly</changefreq>\n\t\t<priority>0.2</priority>\n\t</url>\n";
  21. }
  22. while($myrow = mysql_fetch_array($smresult, MYSQL_ASSOC));
  23.  
  24.  
  25. ....
  26. }
  27.  
  28. и ещё пару однотипных циклов ....
Добавлено за 0.040 секунд, используя GeSHi 1.0.8.10


Хоть и рабочий код, знаю что так не должно быть. )

А как объединить правильно?
 
Polarfox
3 таблицы 3 запроса, а что такого?
Ну или смотри UNION, если объединить сможешь но это тебе жись усложнит, может сильно а может и нет, но толку особо не даст.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
lucky
я планирую так:

при добавление статьи, категории или страницы обновлять карту сайта (карта для поисковиков),

получается четыре запроса к базе в один клик, вот и задумался - не много ли это
Изменил(а) lucky, 10.06.2014 19:39
 
Rush
о боже)
во-первых их объединить не получится, во-вторых, особо незачем
 
Web
Pisatel
Объединить можно бы было, если бы у них было что-то общее, например- ид, тогда бы можно было использовать inner/left/right join, я так понимаю
 
Web
FILON
lucky, объединить три запроса не получится, но можно однотипные циклы объединить в один. Для этого потребуется создать временную таблицу, записать в неё данные с трех запросов (можно с помощью конструкции INSERT INTO ... SELECT) и далее уже выводить данные из временной таблицы одним циклом.

Pisatel, операции с JOIN больше используются для каскадной выборки. В зависимости от ситуации для объединения удобнее использовать конструкцию SELECT ... FROM t1, t2 или оператор UNION.
What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
 
lucky
FILON, пример бы посмотреть как это выглядит,

если я правильно понял, после трёх запросов на выборку данных из таблиц делаем запрос на создание временной таблице а потом ещё один запрос на извлечение данных из временной таблице ?

ещё дополнительные запросы появляются, или так лучше, когда меньше циклов чем запросов?
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Как сделать микроразметку на сайте?  →  PHP 1 / 535 22.07.2021 06:39
Как вебмастеру сформулировали УТП для создания сайтов на PHP-Fusion?  →  Пожелания и предложения 1 / 3628 25.07.2020 03:46
SEO-оптимизация. дубли страниц в PHP-Fusion - где искать и как избавиться?  →  Ошибки, баги 0 / 1927 19.06.2020 17:06
Как вывести все данные из таблицы, за исключением администраторов  →  Плагины 3 / 2360 24.02.2020 15:59
Как перейти с http на https  →  Вопросы новичков 30 / 25944 24.10.2019 18:45
Как правильно сделать ЧПУ и переиндексировать сайт?  →  Моды 4 / 7167 24.10.2019 17:38
Как перенести ресурс на другой домен  →  Установка и настройка системы 5 / 1587 24.10.2019 14:01
Посоветуйте JS-слайдер чтобы фотки JPG сменялись как в GIF-анимации  →  Плагины 2 / 4427 20.10.2019 13:34
Перешел на HttpS - Как теперь удалить Http?!  →  Вопросы новичков 1 / 2739 18.06.2019 13:19
как правильно сделать phpmailer на utf-8?  →  Ошибки, баги 5 / 2563 09.06.2019 14:15
Топ 5 пользователей форума
Alex Alex (1,246)   Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)