Mysql 如何用另一个表中的多列替换表中的一列

Mysql 如何用另一个表中的多列替换表中的一列,mysql,sql,Mysql,Sql,我有一个对地址表有两个不同引用的表。我想用视图中的实际列替换每个引用id。我设想接下来会发生类似的事情,但那是行不通的。我正在使用MySQL 5.5。正确的语法是什么 CREATE VIEW Company AS select id, Name AccountName, JoinDate, AccountStatus, CompanyName, ( select street1 MailStreet1, street2 MailStreet2, city MailCity, state Mail

我有一个对地址表有两个不同引用的表。我想用视图中的实际列替换每个引用id。我设想接下来会发生类似的事情,但那是行不通的。我正在使用MySQL 5.5。正确的语法是什么

CREATE VIEW Company AS
select id, Name AccountName, JoinDate, AccountStatus, CompanyName,
( select street1 MailStreet1, street2 MailStreet2, city MailCity, state MailState, county MailCounty, country MailCountry, postalcode MailPostalCode from Addresses where id = MailAddress limit 1 ) ,
( select street1 BillingStreet1, street2 BillingStreet2, city BillingsCity, state BillingState, county BillingCounty, country BillingCountry, postalcode BillingPostalCode from Addresses where id = BillingAddress limit 1 )
from Customer;

如果这些地址引用可能为空,则可以使用左连接而不是内连接。

PS:由于可读性,我在字段和别名之间使用“as”,但这当然不是必需的。
select 
  c.id, c.Name as AccountName, c.JoinDate, c.AccountStatus, c.CompanyName,
  ma.street1 as MailStreet1, ma.street2 as MailStreet2, ma.city as MailCity, ma state as MailState,
  ma.county as MailCounty, ma.country as MailCountry, ma.postalcode MailPostalCode,
  ba.street1 as MailStreet1, ba.street2 as MailStreet2, ba.city as MailCity, ba state as MailState,
  ba.county as MailCounty, ba.country as MailCountry, ba.postalcode MailPostalCode,
from
  Customer c
  inner join Address ma on ma.id = c.MailAddress
  inner join Address ba on ba.id = c.BillingAddress