為了澄清這個問題:我有一個客戶表,其中包括 first_name 和 last_name 以及 address_id。現在我必須創建一個由名字和姓氏以及城市組成的新電子郵件串列: [email protected] 我正在使用 sakila 資料庫 btw 如果這有任何幫助 任何人都可以向我解釋,我怎么能做到這一點?提前致謝!
uj5u.com熱心網友回復:
客戶表有名字和姓氏,但沒有城市。
不過它有一個address_id,所以我們可以加入地址表。
地址表也沒有城市名稱,但它有一個 city_id。
所以我們將城市表連接到地址表。
現在有了所需的部件,就可以構建新的電子郵件了。
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;
一些城市有空間,所以它們被替換了。
uj5u.com熱心網友回復:
您可以使用 mysqlconcat函式將這些列連接到電子郵件中。
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
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394740.html
下一篇:使用neo4j優化計數搜索
