如何根据名字、姓氏和城市创建电子邮件列表?

How do I create a list of emails from first name, last name and city?

澄清问题: 我与客户有一个 table,其中包括 first_name 和 last_name 以及 address_id。现在我必须创建一个由名字、姓氏和城市组成的新电子邮件列表: firstname.lastname@city.com 如果有任何帮助,我正在使用 sakila 数据库 btw 谁能向我解释一下,我该如何做到这一点? 提前致谢!

客户 table 有名字和姓氏,但没有城市。
它有一个address_id,所以我们可以加入地址table。

地址 table 也没有城市名称,但有一个 city_id。
所以我们加入城市 table 到地址 table.

现在有了所需的部分,就可以构建新的电子邮件了。

select replace(
          lower(
             concat(cust.first_name, '.', cust.last_name, '@', city.city, '.com')
          ), ' ', '_') as new_email
from customer cust
join address addr
  on addr.address_id = cust.address_id
join city
  on city.city_id = addr.city_id
order by new_email;

有些城市有空格,所以替换了。

您可以使用 mysql concat 函数将这些列连接到电子邮件中。

concat(first_name, '.', last_name, '@', city, '.com') 

您还需要从所有相关列中删除空格以使用 replace 函数生成有效的电子邮件。

了解这一点,只需连接客户、地址和城市这三个表即可获得所有需要的列。

select first_name, last_name, 
concat(REPLACE(first_name, ' ', ''), '.', REPLACE(last_name, ' ', ''), '@', REPLACE(city, ' ', ''), '.com') as email
from customer c inner join address a on c.address_id = a.address_id
inner join city ct on a.city_id = ct.city_id

Fiddle