2017-01-16 1 views
0

나는 가게 데이터베이스를 가지고 두 테이블을 함께 결합하고 싶다. 하나의 열을 기반으로 다른 테이블에 열을 추가하는 방법은 무엇입니까?

id_order | reference | id_shop_group | id_shop | id_carrier | id_lang | id_customer | id_cart 

이 아래의 헤더 내 orders 테이블의 행과

customers 테이블의 헤더입니다.

id_customer | id_shop_group | id_shop | id_gender | firstname | lastname 

내가하고 싶은 일은 id_customer 열을 기준으로 가입하는 것입니다. 더 구체적으로는 customers의 모든 열을 이미 추가 한 열을 orders에 기초하여 id_customer을 기반으로 추가하려고합니다. 테이블에 합류 한 후 다음과 같아야합니다 솔루션을 검색 할 때

id_order|reference|id_shop_group|id_shop|id_carrier|id_lang|id_customer|id_cart|id_gender|firstname|lastname 

나는 INNER JOIN 키워드를 발견,하지만 난 그것을 내가 원하는 방식을 사용하는 방법을 모르겠어요.

답변

1

"테이블에 열을 추가하지 마십시오." 대신 우리가 원하는 결과 세트를 리턴하는 데이터베이스에 SQL을 제출하십시오. 귀하의 경우 우리는 두 테이블을 결합하기를 원하며 두 테이블간에 공통적 인 id_customer 필드의 INNER JOIN을 사용하여이를 수행 할 수 있습니다. 그 결과를 영구적으로 보관하려면 자체 테이블로 바꿀 수 있습니다.

사용자의 필요에 맞게 이러한 테이블을 결합하여 반환 할 필드 목록을 조정할 수 있습니다.

1

id_shop 및 id_shop_group이 두 테이블에 있다는 사실은 이들이 복합 키의 일부임을 나타냅니다. 고유 한 행을 보장하기 위해 세 개의 공유 열을 모두 사용하여 조인해야 할 수도 있습니다. 그렇지 않으면 고객이 둘 이상의 상점에 속하는 중복 주문 행을 검색 할 수 있습니다.

SELECT 
... 
FROM orders INNER JOIN customer on orders.id_customer = customer.id_customer 
and orders.id_shop_group = customer.id_shop_group 
and orders.id_shop = customer.id_shop 
관련 문제