Создать представление в MySQL из двух таблиц

Узнай цену своей работы

Формулировка задачи:

У меня есть таблица, которая используется, для авторизации пользователей на почтовом сервере (используется связка Postfix и Dovecot).
+-------------+------------------+-------------------+------------------+------+------+---------------------------------------+--------+---------+---------------------------+
| user_name   | domain_name      | passwd            | pwd_hash         | uid  | gid  | mailbox_basepath                      | enable | quota   | desc_rec                  |
+-------------+------------------+-------------------+------------------+------+------+---------------------------------------+--------+---------+---------------------------+
| logistic    | piduna.pp.ua     | loG-1990M         | _no_hash_passwd_ | 2000 | 2000 | /home/maildir/piduna.pp.ua/           |      1 | 2048000 | box for logistic          |
| 1c          | piduna.pp.ua     | 1c_user_1c        | _no_hash_passwd_ | 2000 | 2000 | /home/maildir/piduna.pp.ua            |      1 | 2048000 | Denisyuk V.V.             |
| admin       | piduna.pp.ua     | AAddMmM1N         | _no_hash_passwd_ | 2000 | 2000 | /home/maildir/piduna.pp.ua            |      1 | 2048000 | Admin                     |
| al.service  | piduna.pp.ua     | Alumo_Serv4321    | _no_hash_passwd_ | 2000 | 2000 | /home/maildir/piduna.pp.ua            |      1 | 2048000 | Alumo Service             |
Мне нужно создать таблицу, с двумя колонками. В одной колонке будет электронный адрес, который конкатенируется из user_name и domain_name из предыдущей таблицы. А в другой колонке будет просто адрес, с названием removed@mail.ru. Как конкатенировать user_name и domain_name ясно, все это делается с помощью инструмента представление в MYSQL:
CREATE VIEW `forwardings_all_view` AS select lcase(concat(`users`.`user_name`,'@',`users`.`domain_name`)) AS `email_fqn` from `users` where (`users`.`enable` = 1)
Но вот как добавить к этому представление колонку в которой будет адрес removed@mail.ru ? Как я понимаю необходимо создать таблицу с одной колонкой и этим единственным значением. Просто как тогда создать представление из двух таблиц ? Что бы оно брало из одной removed@mail.ru и ставило его в одну колонку, а из другой брало user_name и domain_name и конкатенировало их ? Спасибо если кто откликнется.

Решение задачи: «Создать представление в MySQL из двух таблиц»

textual
Листинг программы
SELECT fld1, 'ABCD' AS Addr
FROM tab1

Объяснение кода листинга программы

  1. fld1 - это название переменной, которая содержит значения из таблицы tab1.
  2. 'ABCD' - это значение переменной, которое будет отображаться как адрес в результирующем наборе данных.
  3. tab1 - это название таблицы, из которой берутся данные.
  4. fld1 и 'ABCD' - это единственные два элемента, которые участвуют в запросе.
  5. Запрос выполняется на сервере баз данных MySQL.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5