2012-06-14 5 views
2

다른 두 테이블 간의 내부 조인에서 mysql 테이블을 만들려고합니다. 를 사용하지 않는 이유내부 조인에서 mysql 테이블을 만들려면

  • sitematrix_sites
  • sitematrix_databases

그들은 다른 테이블에 의해 관계가 (나도 몰라 : 나는 데이터베이스 사람이 다음과 같은 테이블이있는 생성을 취급하고 있습니다 외래 키)는 sitematrix_sites_databases이고 다음 필드가 있습니다 : site_iddatabase_id.

두 테이블의 관계입니다. 지금은 내 인생을 더 쉽게 만드는 것을 제거하기 위해 노력하고있어, 그래서 나는이 :

mysql> CREATE TABLE result AS(select * from sitematrix_databases INNER JOIN site 
matrix_site_databases ON sitematrix_site_databases.database_id = sitematrix_data 
bases.database_id); 
ERROR 1060 (42S21): Duplicate column name 'database_id' 

을하지만, 내가 그 오류를 받고 있어요. 누군가가 database_id 필드를 반복하지 않고 두 테이블을 병합 할 수있는 방법을 알고 있습니까?

감사

답변

1

은 SELECT 문에서 *를 제거하고 실제로 새 테이블에서 원하는 컬럼을 나열합니다. 두 원본 테이블 모두에 표시되는 열의 경우 테이블 이름도 지정하십시오 (예 : sitematrix_databases.database_id).

1

* 대신 각 열의 이름을 지정하고 별칭을 사용하지 마십시오. 예를 들어 sitematrix_database.database_id 대신 alternativeName을 사용할 수 있습니다. 또한이 방법으로 원하는 열을 선택하여 선택할 수 있습니다. 대신 SELECT * ...를 사용

0

SELECT database_id ...

MySQL은 같은 열 이름이 테이블을 조인 좋아하지 않는다보십시오.

관련 문제