2011-08-07 5 views
1

두 개의 다른 주소 테이블 참조가있는 테이블이 있습니다. 각 참조 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; 

답변

2
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 

은 왼쪽 대신 INNER의 가입이 주소 참조가 비어있을 수 있습니다 경우에 가입 할 수 있습니다.

+0

+1 나를 때려 눕힌다. – Bohemian

+0

추신 : 필자는 필드와 가명 사이에 '가독성'때문에 'as'를 사용하지만, 물론 필요하지는 않습니다. – GolezTrol

+0

고마워요! 그랬어. – Steve

관련 문제