2009-02-03 8 views
0

안녕 나는 두 개의 데이터 테이블이 말 :병합 데이터 테이블 열

표 1 :

name age 
---- --- 
Bob 40 

표 2 :

auto kids 
---- ---- 
3  3 

내가

같은 것을 얻을 수있는 두 테이블을 병합 할
name age auto kids 
--- --- --- ---- 
Bob 40 3 3 

이것이 가능합니까? 병합을 시도했지만 작동하지 않는 것 같습니다. 감사합니다.


두 데이터가 서로 다른 두 데이터베이스 (Oracle, SQL)에서 나왔기 때문에 내가 제안하는 것을 수행 할 수없는 이유가 있습니다. 나는 연결된 서버를 사용할 수 없다. 속도가 그곳에 없기 때문이다. 내가 프로그래밍 방식으로 할 수 있다고 제안 할 수있는 것이 있는가? 감사.

답변

0

병합은 유사한 스키마의 테이블 데이터 만 결합합니다.

아마도 각 테이블을 반복하고 원하는 모든 열이있는 세 번째 테이블을 만들어야 할 것입니다.

또한 나는 어떤 종류의 관계 키도 여기 보지 못합니다. 그렇게했다면 데이터 관계를 만들 수 있고 병합 할 필요가 없습니다.

0

이러한 테이블은 어떤 관계가 있습니까? 내가 그렇지 않은 경우에 당신을 위해 명확 만드는 희망의 이전이 개 답변에 추가에서 총을 쏘면거야

select * from table1 t1 
join table2 t2 on <some magic where clause here> 
1

그들 사이의 키는 무엇인가.

사람
PersonID (기본 키)
FIRSTNAME

나이

인구 통계 : 당신이 말하는 두 테이블이 같은 모양하지 않는 이유 인색하고 협박은 무엇을 궁금해
인구 통계 ID (기본 키)
PersonID (외래 키)
자동차
개 어린이


... 두 테이블이이처럼 보였다 있도록 다음 사람이 테이블에 몇 열을 추가하여 그들을 결합 할 수이 닮은 경우 :

사람
PersonID (기본 키)
FIRSTNAME

나이
자동차
어린이

...다음과 같은 쿼리 실행 :

UPDATE 사람 (P)을, 인구 ​​통계
SET에게
    p.Autos의 =의 d.Autos
    p.Kids의 =의 d.Kids

    쪽 거라고 .PersonID = d.PersonID

위의 예에서 Person 및 Demographics 테이블의 PersonID 필드가 없으면 각 Person 레코드와 연결된 Demographic 레코드를 알 수 없습니다. 결합 된 테이블을 만들려면이를 알아야합니다.

0

Table1 (name, age)과 Table2 (auto, kids) 두 열을 결합하는 데 관계없이이 두 데이터 테이블을 결합하려면 Linq를 사용하는 것이 좋습니다. Linq에서는 두 개 이상의 테이블을 테이블의 "rowIndex"와 결합 할 수 있습니다. VB.NET 코드를 다음

보십시오 : 당신이 더 많은 유형의 안전과 병합 수행하려는 경우

Dim Table1, Table2, MergerTable As New DataTable 

    Dim rs = From c In Table1.AsEnumerable() 
     Join c1 In Table2.AsEnumerable() On Table1.Rows.IndexOf(c) Equals LicensDatum.Rows.IndexOf(c1) 
        Select New With 
        { 
         .a0 = c.Item(0), 
         .b0 = c.Item(0), 
         .a1 = c.Item(0), 
         .b1 = c1.Item(0) 
        } 

    MergerTable = New DataTable() 
    MergerTable.Columns.Add("name", GetType(String)) 
    MergerTable.Columns.Add("age", GetType(String)) 
    MergerTable.Columns.Add("auto", GetType(String)) 
    MergerTable.Columns.Add("kid", GetType(String)) 

    For Each row In rs.ToList() 
     Dim tableRow = MergerTable.NewRow() 
     tableRow.Item("name") = row.a0 
     tableRow.Item("age") = row.b0 
     tableRow.Item("auto") = row.a1 
     tableRow.Item("kid") = row.b1 
     MergerTable.Rows.Add(tableRow) 
    Next 

당신은 유형 재생할 수 있습니다.