|
|
|
| Добрый день.
Вот все хочу узнать про двойные запросы в Mysql.
Для чего их исползуют, увеличивает ли это производительность муськи, ну и вообще хоть маленький пример с небольшим описанием.
Заранее благодарен и надеюсь на Вашу помощь) | |
|
|
|
|
|
|
|
для: Night_Charter
(11.03.2007 в 00:50)
| | Хм... а под двойными запросами что имеется в виду? Двухтабличные, вложенные, UNION-запросы? | |
|
|
|
|
|
|
|
для: cheops
(11.03.2007 в 01:00)
| | Да, двухтабличные ) | |
|
|
|
|
|
|
|
для: Night_Charter
(11.03.2007 в 12:14)
| | Такие запросы используются когда для формирования результирующего запроса требуются данные из обеих таблиц. Производительность от этого, как правило, не возрастает, а наоборот падает, однако результат можно получить за счёт меньшего объёма кода. Пусть имеется две таблицы, первая catalogs, которая хранит названия каталогов
CREATE TABLE catalogs (
id_catalog INT(11) NOT NULL,
name TINYTEXT NOT NULL
PRIMARY KEY (id)
);
|
Вторая products, в которой содержаться товарные позиции, каталогов
CREATE TABLE products (
id_product int(11) NOT NULL auto_increment,
name tinytext NOT NULL,
id_catalog int(11) NOT NULL,
PRIMARY KEY (id_product),
KEY id_catalog (id_catalog)
);
|
Таблицы связаны при помощи поля id_catalog, записи таблицы products в этом поле хранят первичные ключи таблицы catalogs. Если просто выбирать записи из таблицы products, то в поле id_catalog будет лишь номер, чтобы в него сразу помещалось название каталога, следует использовать много табличный запрос
SELECT products.id_product AS id_product, products.name AS name, catalogs.name AS catalog
FROM catalogs, products
WHERE catalogs.id_catalog = products.id_catalog
|
| |
|
|
|
|
|
|
|
для: cheops
(11.03.2007 в 13:28)
| | Спасибо cheops.
Этот вариант гораздо легче, чем построение двух отдельных запросов для получения всего лишь названия каталога.
У меня созрел вопрос номер два.
Где можно почитать инфу или Вы снова приведете пример неограниченно вложенности категорий. Я гдето слыхал, что можно все реализовать одним запросом.
Я так понимаю, что необходимо использовать рекурсивный запрос. | |
|
|
|
|
|
|
|
для: Night_Charter
(11.03.2007 в 13:41)
| | Для создания неограниченной вложенности следует организовать таблицу catalogs немного по другому (да, там зачастую используется рекурсия). Подробнее можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=701.
PS Под новые вопросы лучше заводить новые темы. | |
|
|
|