Представление, это как подготовленный заранее шаблон запроса. Выполняя поиск по какому-то представлению, Вы на самом деле лишь дописываете к этому шаблону свои условия.
Вот простой пример представления (назовём его `users_online`), которое показывает пользователей, проявлявших активность в течении последних 15 минут:
SELECT *
FROM `users` AS `u`
JOIN `activity` AS `a`
ON `a`.`user_id` = `u`.`id`
AND `a`.`modified` >= CURRENT_TIMESTAMP - INTERVAL 15 MINUTE;
При выборе онлайн-пользователей старше 18 лет, Ваш запрос будет скорее всего примерно такой:
SELECT * FROM `users_online` WHERE `age` > 18;
Что для базы данных равноценно:
SELECT * FROM (
SELECT *
FROM `users` AS `u`
JOIN `activity` AS `a`
ON `a`.`user_id` = `u`.`id`
AND `a`.`modified` >= CURRENT_TIMESTAMP - INTERVAL 15 MINUTE
) AS `users_online`
WHERE `age` > 18;
В каждом конкретном случае база данных может оптимизировать запрос, и результирующим может оказаться нечто иное, но смысл от этого не меняется и описан в первом предложении моего комментария. Например, более простое представление:
SELECT * FROM `users` WHERE `online` = 1;
... с Вашими условиями превратится в:
SELECT * FROM `users` WHERE `online` = 1 AND `age` > 18;