簡體   English   中英

從兩個表在mysql中創建VIEW

[英]create VIEW in mysql from two tables

我的郵件服務器的用戶列表。 此表用於dovecot中的imap身份驗證:

+-------------+------------------+-------------------+------------------+------+------+---------------------------------------+--------+---------+---------------------------+
| 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             |

我需要創建具有兩列的表。 第一欄,all @ piduna.pp.ua。 第二列是我所有的電子郵件帳戶。 在一張表中,我知道如何從user_name和domain_name進行串聯。 看:

CREATE VIEW `forwardings_all_view` AS select lcase(concat(`users`.`user_name`,'@',`users`.`domain_name`)) AS `email_fqn` from `users` where (`users`.`enable` = 1)

但是,如何在VIEW中添加第二列:all@piduna.pp.ua。

像那樣:

+------------------------------+-------------------------------------------------+
| email_fqn                    | source                                          | 
+------------------------------+-------------------------------------------------+
| .logistic@piduna.pp.ua       | all@piduna.pp.ua                                | 
| 1c@piduna.pp.ua              |                                                 | 
| admin@piduna.pp.ua           |                                                 |
| al.service@piduna.pp.ua      |                                                 | 

嘗試這個:

create view first_user as
select user_name from users where enable limit 1;

create view forwardings_all_view as
select lcase(concat(a.`user_name`,'@',a.`domain_name`)) AS `email_fqn`,
  if(b.user_name is null, '', 'all@piduna.pp.ua') `source`
from `users` a
left join first_user b on a.user_name = b.user_name
where a.`enable` = 1;

小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM