Выбор результатов вложенного запроса.

Вернуться в каталог

Как раскрутить сайт:

Каталог - это...
Поисковик - это...
Поисковики 1993г
Поисковики 1994г
Список каталогов
Каталоги для PR
Каталоги белые
Каталоги белые
Белые каталоги ссылок
Белые каталоги ссылок
Каталоги
Протокол HTTP 1.1
Сайты сателлиты
Yandex бан
Ошибки начинающих
Ошибки webмастера
Что Гугл знает?
О сайте из Google
robots.txt
Социалки
Расчет PageRank
Как раскрутить сайт
Причины игнора сайта
Фильтры Гугла
Хороший дизайн

Может пригодиться:

специалист Peugeot 207

Залог хорошего сайта
Софт вебмастеру
Выбрать хостинг
Платформы хостинга
Виртуальный сервер
Продвижение сайта
Секреты раскрутки 1
Секреты раскрутки 2
Раскруточные мифы
Оптимизация под каталоги
Заработать на сайте
Размещение банеров
Защита сайта
Спам в поздравлениях
SEO продвижение
Раскрутка Дорвеями
Секреты Гугла
Ссылки google ТОП-10
Сниппеты
Ключевые слова
Редирект
Грязная линковка
SEO слэнг
Подробно о PR
Бан партнерки

Реклама:

Самые самые выгодные игры в интернет казино для Вас!

О поисковых системах
Внутренние факторы
Внешние факторы
Индексация сайта
Фильтры
Различия поисковых
Semonitor
Сохранить позиции после редизайна
Секреты Гугла


  • Вернуться в каталог





  • Rambler's Top100

    Выбор результатов.


    Выбор результатов вложенного запроса

    SELECT столбцы, (SELECT столбцы FROM таблица)
    FROM ...

    Вложенный запрос можно использовать в выражении SELECT, и результаты его выполнения будут возвращены в виде столбца. Подчиненный запрос может возвращать только один столбец, в противном слyчае MysQL сгенерирует сообщение oб ошибке.

    B приведенном ниже примере в выражении SЕLЕСТ используются два подчиненных запроса. Они возвращают два фрaгмента обобщенной информации. Вложенные запросы выполняют операторы COUNT (*) на разных таблицах, a результаты возвращаются в виде одной строки данных, содержащей два столбца.

    SELECT (SELECT COUNT(*) FROM person) AS num_person,
    (SELECT COUNT(*) FROM book) АS num_book;



    Связанные запросы

    Если вложенный зaпрос должен обращаться к таблице, которая также указана во внешнем запросе, обработка не может осуществляться так, как описано выше, поскольку невозможно выполнить подчиненный запрос, не зная значения каждой строки таблицы во внешнем запросе. B подобных ситуациях говорят o связанных, или коррелированных вложенных, запросах.

    B приведенном ниже примере вложенный запрос используется для вычисления последней даты выдачи во временное пользование каждой книги, возвращаемой главным запросом. B данном случае имеет место связанный вложенный запрос, так как внутренний запрос ссылается на таблицу book из главного запроса. Невозможно выполнить вложенный запрос, не зная значение bооk.bооk_id для каждой строки, возвращаемой главным запросом.

    SELECT title,
    (SELECT тах(date_1ent)
    FROM loan
    WHERE 1oan.book_id = book.book_id) Ао subquery
    FROM book;

    Как вы, вероятно, догадались, данный запрос можно сравнительно просто переписать, используя объединение и выражение GROUP ВУ. Очень часто один и тот же запрос можно выполнить различными способами, в зависимости от особенностей использования объединений и подчиненных запросов. B некоторых слyчаях выбор мeтода обработки влияeт на производительность, в частности, связaнные вложенные запросы выполняются очень медленно. Тaким образом, если скорость обработки запроса не устраивает вас, воспользуйтесь другим методом.



    Использование ключевого слова UNION

    SELECT столбцы FROM таблица_1
    UNION
    SELECT столбцы FROM таблица_2;

    Kлючевое слово UNION используется для объединения результатов двух или нескольких запросов в один набор. B приведенном ниже примере запрос возвращает имена авторов, извлеченные из таблицы book, и сведения o тех знакомых, кому книги были даны взаймы, из таблицы person.

    SELECT author FROM book
    UNION
    SELECT name FROM person;

    Все таблицы, объединенные c помощью операто­ра UNION, должны возвращать одинаковое количество столбцов. Столбец c именами из первого запроса используется в окончательном наборе результатов. B частности, в данном примере возвращаются име­на в столбце c именем author, однако некоторые из этих имен извлечены из столбца person. name.

    По умолчанию при oбъединении запросов c помощью оператора UN I ON возвращаются только строки, отличающиеся друг от друга. Если вам надо, чтобы возвращалась кaждая строка, следует использовать выражение UNION ALL.

    B следующем примере выполняются два запроса к таблице book. Первый запрос определяет названия книг, состояние которых считается отличным. Второй запрос находит книги, имя автора которых начинается c буквы "М".

    SЕLЕСТ title FROM book
    WHERE соnd = 'mint'
    UNION ALL
    SELECT title FROM book
    WHERE author LIKE 'M%';

    Результаты обработки приведены ниже. Поскольку в запросе указаны ключевые слова UNION ALL, название книги In the Night Kitchen выводится дважды, так как она удовлетворяет обоим критериям. Если в том же запросе ограничиться указанием UNION, название каждой книги будет отображаться только один раз.

    результаты запроса



    Спонсор сайта:




    Пер. с англ. - М.: ООО "И.Д.Вильямс", 2006.

    Основы MySQL:

    Введение
    Схема MySQL
    Управление базами
    Создание баз
    Создание таблиц
    Создание столбцов
    Идентификаторы
    Хранение данных
    Включение даты
    Импорт данных
    Включение данных
    Простые запросы
    Устранение повторов
    Обработка значений
    Значения NULL
    Обработка данных
    Оновление значений
    Безопасность
    Удаление записей

    Спонсор сайта:


    Установка паролей
    Установка привилегий
    Клиентская часть
    Параметры соединения
    MySQL АРI
    Запросы АРI
    АРI для Perl
    РНР АРI
    Расширенные запросы
    Ключевое слово JOIN
    Вложенные запросы
    Выбор результатов
    Проблемы MySQL
    Восстановление базы
    Частые ошибки
    Кол-во соединений
    Подготовка к работе
    В курс дела
    Имена столбцов

    Реклама:


    Внесение данных
    Внесение данных 2
    Особенности таблиц
    Еще о таблицах

    Вернуться в каталог