Q&A

  • 두개의 테이블을 비교하여 같은것을 삭제하고자 할때.
안녕하세요...

질문을 드리게 됐네요...



2개의 테이블을 비교하여 즉 A 테이블과 B 테이블이 있다고 하면...

두개는 다른 테이블인데요...

A 테이블의 NUM 필드와

B 테이블의 NUM2 필드를 비교하여 같은 필드내에 같은 내용이 있을경우,..

A 테이블의 해당 레코드를 지우고 실어요...



즉 서로 다른 레코드만 남게 하고 싶군요...

ttable 를 사용하여 비교 하여 봤지만... A xpdlqmfdl 207메가고 60만건이 넘는 자료기 때문에 도저히 시간이 많이 걸리는 군요...



SQL 을 이용하면 빠를것 같은데....

둘다 DBF 타입입니다...

도와 주십시요...



2  COMMENTS
  • Profile
    신호성 1999.04.27 03:49
    류 wrote:

    > 안녕하세요...

    > 질문을 드리게 됐네요...

    >

    > 2개의 테이블을 비교하여 즉 A 테이블과 B 테이블이 있다고 하면...

    > 두개는 다른 테이블인데요...

    > A 테이블의 NUM 필드와

    > B 테이블의 NUM2 필드를 비교하여 같은 필드내에 같은 내용이 있을경우,..

    > A 테이블의 해당 레코드를 지우고 실어요...

    >

    > 즉 서로 다른 레코드만 남게 하고 싶군요...

    > ttable 를 사용하여 비교 하여 봤지만... A xpdlqmfdl 207메가고 60만건이 넘는 자료기 때문에 도저히 시간이 많이 걸리는 군요...

    >

    > SQL 을 이용하면 빠를것 같은데....

    > 둘다 DBF 타입입니다...

    > 도와 주십시요...

    >



    안녕하세요?

    신호성 입니다.

    아래내용으로 실행해 보세요



    DELETE FROM A

    WHERE NUM IN (SELECT DISTINCT NUM2 FROM B)



















  • Profile
    구창민 1999.04.26 22:20
    류 wrote:

    > 안녕하세요...

    > 질문을 드리게 됐네요...

    >

    > 2개의 테이블을 비교하여 즉 A 테이블과 B 테이블이 있다고 하면...

    > 두개는 다른 테이블인데요...

    > A 테이블의 NUM 필드와

    > B 테이블의 NUM2 필드를 비교하여 같은 필드내에 같은 내용이 있을경우,..

    > A 테이블의 해당 레코드를 지우고 실어요...

    >

    > 즉 서로 다른 레코드만 남게 하고 싶군요...

    > ttable 를 사용하여 비교 하여 봤지만... A xpdlqmfdl 207메가고 60만건이 넘는 자료기 때문에 도저히 시간이 많이 걸리는 군요...

    >

    > SQL 을 이용하면 빠를것 같은데....

    > 둘다 DBF 타입입니다...

    > 도와 주십시요...

    >



    류님 안녕하세요? 구창민입니다.

    아래와 같은 방법이 어떨까요?



    먼저 두 테이블을 Query1, Query2에 붙였다 가정하구,

    의사코드를 적어보겠습니다.



    Query1.Open; //비교대상필드를 먼저 오픈하구요,



    while( not Query1.EOF ) //비교가 될 테이블의 끝까지 루프를 돌며...

    begin

    Query2.Close

    Query2..SQL.Clear;

    Query2..Sql.Add('Delete From 테이블명 Where Name =:Name');

    Query2..ParamByName('Name').AsString := Query1.FieldByName(특정필드);

    Query2..ExecSQL;

    Query1.Next; //다음 비교대상을 위해 레코드 이동

    end;

    음..말씀하신 작업을 제가 지식이 부족해 한방에 쿼리를

    날리긴 힘들거 같구요..

    그리고, 60만건 정도의 데이타라면 매우빠른 속도를 낼수 있는

    쿼리는 아마 존재하지 않을거 같네요.

    위처럼 작성한 의사코드와 같은 방법으로 하면 되지 않을까 싶습니다.

    직접 테스트 해보진 못했습니다.

    그럼.. 즐거운 코딩되시길..

    • 이동수
    • 1999.04.27 02:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 09:03
      이동수 wrote: > 일반적인 DLL의 사용은 하고 있는데 > 필요에 의해서 C로 만든 DLL을 사용해야 합니다....
    • 정연섭
    • 1999.07.07 22:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.07 22:55
      OnDrawPanel을 실행시켜 버리면 되죠...쩝.. OnDrawPanel의 함수가 Panel1DrawPanel이라면 버튼을 눌렀...
    • 문창완
    • 1999.07.07 22:50
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박재근
      1999.04.27 02:25
      프로그램을 작성중인데 입력받은 날짜(문자형)을 시간형으로 변경하여야 하는 데 그때, 시스템(NT,Windows...
    • 신인재
      1999.04.27 03:19
      박재근 wrote: > 프로그램을 작성중인데 입력받은 날짜(문자형)을 시간형으로 변경하여야 하는 데 > 그때...
    • 한경수
    • 1999.04.27 01:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 01:33
      한경수 wrote: > 새로 데이타맨 프로의 컨트롤과 같은 컨트롤을 사용하고 싶습니다. > 소개 부탁드립니다...
    • 황현동
    • 1999.07.07 22:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.07.08 00:09
      백신아라면 아직가지도 어셈블리를 많이 쓰죠... 아닌가? -.-;; 하여튼 어셈블리가 많이 도움이 될것 같...
    • 조복기
      1999.07.07 22:47
      황현동 께서 말씀하시기를... > 도배를 하는건가?? > > 제가 집에서는 통신을 안해서여.. PC방에 가끔...
    • 초보자
    • 1999.04.26 23:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 01:31
      초보자 wrote: > 화면 불할에 대해 고수님들의 조언을 듣고 싶습니다. > 다름이 아니라 윈도우를 세부분...
    • 황현동
    • 1999.07.07 22:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.07 22:57
      변수 a가 무슨 형태의 변수인지가 중요합니다. 변수 a가 스트링(String)이라면 그냥 Edit1.text := a; 라...
    • 황현동
    • 1999.07.07 22:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 한경수
      1999.04.26 23:34
      하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메뉴를 누를때 마다 각기 다른 윈도우가 ...
    • 이정욱
      1999.07.08 01:52
      씨디키를 안물어 봤으면 아마도 다른 버전(베타, 릴리즈 등등)일것 같습니다. Update Pack이 적용이 되는...
    • 안치봉
      1999.04.27 01:28
      한경수 wrote: > 하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메뉴를 누를때 마다 각...
    • rain
      1999.04.27 05:09
      안치봉 wrote: > 한경수 wrote: > > 하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메...
    • 이광환
    • 1999.07.07 21:23
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 한경수
      1999.04.27 01:13
      새로 데이타맨 프로의 컨트롤과 같은 컨트롤을 사용하고 싶습니다. 소개 부탁드립니다
    • 신인재
      1999.07.08 03:37
      한델 www.delphi.co.kr 에 가보시면 자료실에 파라독스 인덱스가 깨졌을때 유용한 프로그램이 있습니다....
    • 안치봉
      1999.04.27 01:33
      한경수 wrote: > 새로 데이타맨 프로의 컨트롤과 같은 컨트롤을 사용하고 싶습니다. > 소개 부탁드립니다...
    • Jimmy
    • 1999.07.07 21:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 한경수
    • 1999.04.26 23:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.27 01:28
      한경수 wrote: > 하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메뉴를 누를때 마다 각...
    • rain
      1999.04.27 05:09
      안치봉 wrote: > 한경수 wrote: > > 하나의 윈도우에서 윈도우를 브라우저의 프레임을 나누어 왼쪽의 메...
    • 1999.07.07 19:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송기원
      1999.07.12 18:12
      휴가갔다와서 방금 확인합니다.... 서버오류번호 => IntToStr(Error.Errors[i].NativeError)); 이렇게 하...
    • 이수진
    • 1999.07.07 19:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 초보자
      1999.04.26 23:30
      화면 불할에 대해 고수님들의 조언을 듣고 싶습니다. 다름이 아니라 윈도우를 세부분으로 나누고 크기를 ...
    • 안치봉
      1999.04.27 01:31
      초보자 wrote: > 화면 불할에 대해 고수님들의 조언을 듣고 싶습니다. > 다름이 아니라 윈도우를 세부분...
    • 1999.04.26 21:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신호성
      1999.04.27 03:49
      류 wrote: > 안녕하세요... > 질문을 드리게 됐네요... > > 2개의 테이블을 비교하여 즉 A 테이블과 B...
    • 구창민
      1999.04.26 22:20
      류 wrote: > 안녕하세요... > 질문을 드리게 됐네요... > > 2개의 테이블을 비교하여 즉 A 테이블과 B...
    • 별지기
    • 1999.07.07 18:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.07 22:59
      그냥 그 유닛에서 F12키를 눌러보세요. 그리고 혹시 어떤 유닛들이 사용되었나 보셔야 할때는 Ctrl+alt+F1...
    • 한승현
    • 1999.04.26 17:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.26 21:49
      첫번째 컴포넌트를 인스톨 한 후 dpk 파일을 저장 하지 않고 종료를 하신것 같네요. 컴포넌트 설치 후 델파...