2013-10-17 2 views
0

내가 가입하고자하는 테이블이 있습니다. 그들은 고객의 성냥 번호와 관련이 있으며 성명과 일치하지 않습니다. 한 테이블의 데이터를 입력 한 다음 다른 테이블과 조인 한 다음 두 번째 테이블의 결과를 표시하려고합니다. 내 코드는 다음과 같습니다 :구문 오류 SQL 결합 문

SELECT [title], 
     [customer_no], 
     [forename], 
     [surname], 
     [res_addr_1], 
     [res_addr_2], 
     [city], 
     [country], 
     [res_postcode], 
     [DOB], 
     [Home_phone_no], 
     [Mobile_phone_no] 
FROM Customer 
LEFT JOIN Account ON cust_match_no 
     FROM Customer = customer_match_no 
     FROM Account 
WHERE Account.account_no = '12345678'; 

그러나 나는 잘못된 구문과 가까운 점점 오류를 유지 "="나는 아무 생각도 이유가 없다!

답변

0
SELECT [title], [customer_no], [forename], [surname], 
[res_addr_1], [res_addr_2], [city], [country], [res_postcode], 
[DOB], [Home_phone_no], [Mobile_phone_no] FROM Customer 
LEFT JOIN Account ON 
cust_match_no = customer_no WHERE Account.account_no = '12345678'; 
0

이 같은 시도 :

SELECT 
    [title], 
    [customer_no], 
    [forename], 
    [surname], 
    [res_addr_1], 
    [res_addr_2], 
    [city], 
    [country], 
    [res_postcode], 
    [DOB], 
    [Home_phone_no], 
    [Mobile_phone_no] 
FROM 
    Customer 
LEFT JOIN 
    Account 
ON 
    cust_match_no = customer_match_no 
WHERE 
    Account.account_no = '12345678' 
0
  SELECT [title], [customer_no], [forename], [surname], [res_addr_1], [res_addr_2], 
[city], [country], [res_postcode], [DOB], [Home_phone_no], [Mobile_phone_no] FROM Customer 
LEFT JOIN Account ON Account.cust_match_no = Customer.customer_match_no 
WHERE Account.account_no = '12345678'; 
0

이 같은 시도 :

위한 것입니다 FROM 절 게 아니에요
SELECT [title], 
    [customer_no], 
    [forename], 
    [surname], 
    [res_addr_1], 
    [res_addr_2], 
    [city], 
    [country], 
    [res_postcode], 
    [DOB], 
    [Home_phone_no], 
    [Mobile_phone_no] 
FROM Customer 
LEFT JOIN Account ON cust_match_no = customer_match_no  
WHERE Account.account_no = '12345678'; 
1

. FROM은 조회의 "기본"테이블을 지정합니다. JOIN에서 일치시킬 테이블의 필드를 지정하려면 모호성이있는 경우 WHERE 절에서와 같이 테이블 또는 별칭의 이름으로 해당 필드를 정규화해야합니다 (WHERE Account.account_no = ...).

SELECT 
    [title], 
    [customer_no], 
    [forename], 
    [surname], 
    [res_addr_1], 
    [res_addr_2], 
    [city], 
    [country], 
    [res_postcode], 
    [DOB], 
    [Home_phone_no], 
    [Mobile_phone_no] 
FROM Customer cus 
LEFT JOIN Account acc ON cus.cust_match_no = acc.customer_match_no 
WHERE acc.account_no = '12345678'; 

같은 조언을 경우에 적용 계정에서 필드가 cust_match_no 이름을 지정하고 다른 하나는 customer_match_no이지만, 어떤 경우에이 같은 쿼리를 바꿔 수 있기 때문에 귀하의 경우에는, 불필요한 것 같다 SELECT 절에 모호한 열 이름이 있습니다. 고객 테이블과 계정 테이블 모두에 '국가'필드가 있다고 가정 해 보겠습니다. 그런 다음이 열을 한정하여 명확성을 확인해야합니다.

SELECT 
    [Customer].[Country], 
    [Account].[Country] 
    .... 

PS. 내 영어를 용서해주십시오.