MS Access : 동일한 사용자 집합에 대한 다른 테이블의 다른 데이터를 하나의 테이블로 병합

xt086

나는 오래된 데이터 세트를 다루고 있습니다. 그것은 작은 클럽의 전자 게시판의 오래된 로그 파일로 구성됩니다. 이 커뮤니티의 일원이었던 제 친구에게 향수를 불러 일으키는 가치가 있습니다.

이제 데이터베이스에 모든 종류의 로그 (메시지 보드 로그인, 메시지 등) 인 여러 테이블이 있습니다. 재미있는 것은 정확한 날짜가 있지만 사용자 이름이나 사용자 ID는 없지만 실제 이름과 성이 대신 있다는 것입니다. (이들 중 대부분은 별명 일 가능성이 높지만 중요하지 않습니다).

친구의 요청에 따라 모든 로그 파일을 하나의 긴 테이블에 시간순으로 "병합"하여 결국 그와 그의 동료에게이 클럽의 활동에 대한 개요를 제공합니다.

그래서 저는 성을 사용자 식별자로 취급하고 각 테이블에 대해 통일 된 값 '날짜'를 만들었습니다 (로그인의 경우 로그인 날짜의 사본이고 로그 아웃의 경우 로그 아웃 날짜의 사본이며 게시 된 메시지의 경우 게시일 사본).

이제 사용자의 행동에 대한 데이터를 하나의 테이블에 넣고 싶습니다. 연대순 (날짜순)이어야합니다. MS Access SQL 쿼리로이를 달성 할 수 있습니까?

다음과 같은 테이블이 있습니다.

logins:
+---------+------+---------------------+---------------------+
| surname | name |     login_date      |        date         |
+---------+------+---------------------+---------------------+
| Smith   | John | 1997-01-14_18:45:04 | 1997-01-14_18:45:04 |
| Parker  | Mary | 1997-03-15_11:30:45 | 1997-03-15_11:30:45 |
| Smith   | John | 1997-03-20_09:05:24 | 1997-03-20_09:05:24 |
+---------+------+---------------------+---------------------+

logouts:
+---------+------+---------------------+---------------------+
| surname | name |     logout_date     |        date         |
+---------+------+---------------------+---------------------+
| Smith   | John | 1997-01-14_19:25:55 | 1997-01-14_19:25:55 |
| Parker  | Mary | 1997-03-15_13:08:01 | 1997-03-15_13:08:01 |
| Smith   | John | 1997-03-20_09:15:58 | 1997-03-20_09:15:58 |
+---------+------+---------------------+---------------------+

posted_messages:
+---------+------+---------------------+---------------+---------------------+
| surname | name |      post_date      |   post_text   |        date         |
+---------+------+---------------------+---------------+---------------------+
| Parker  | Mary | 1997-03-15_12:30:56 | "Hello world" | 1997-03-15_12:30:56 |
| Smith   | John | 1997-03-20_09:14:01 | "Hello hello" | 1997-03-20_09:14:01 |
+---------+------+---------------------+---------------+---------------------+

내 원하는 결과는 다음과 같습니다.

+---------------------+---------+------+---------------------+---------------------+---------------------+---------------+
|        date         | surname | name |     login_date      |     logout_date     |      post_date      |   post_text   |
+---------------------+---------+------+---------------------+---------------------+---------------------+---------------+
| 1997-01-14_18:45:04 | Smith   | John | 1997-01-14_18:45:04 |                     |                     |               |
| 1997-01-14_19:25:55 | Smith   | John |                     | 1997-01-14_19:25:55 |                     |               |
| 1997-03-15_11:30:45 | Parker  | Mary | 1997-03-15_11:30:45 |                     |                     |               |
| 1997-03-15_12:30:56 | Parker  | Mary |                     |                     | 1997-03-15_12:30:56 | "Hello world" |
| 1997-03-15_13:08:01 | Parker  | Mary |                     | 1997-03-15_13:08:01 |                     |               |
| 1997-03-20_09:05:24 | Smith   | John | 1997-03-20_09:05:24 |                     |                     |               |
| 1997-03-20_09:14:01 | Smith   | John |                     |                     | 1997-03-20_09:14:01 | "Hello hello" |
| 1997-03-20_09:15:58 | Smith   | John |                     | 1997-03-20_09:15:58 |                     |               |
+---------------------+---------+------+---------------------+---------------------+---------------------+---------------+
고든 리노 프

원하는 union all:

select date, surname, name, login_date, null as logout_date, null as post_date, null as post_text  
from logins
union all
select date, surname, name, null, logout_date, null, null 
from logouts 
union all
select date, surname, name, null, null, post_date, post_text
from posted_messages;

을 사용하여 새 테이블을 만들거나를 select into사용하여 기존 테이블에 삽입 insert하거나보기를 만들 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관