나는 오래된 데이터 세트를 다루고 있습니다. 그것은 작은 클럽의 전자 게시판의 오래된 로그 파일로 구성됩니다. 이 커뮤니티의 일원이었던 제 친구에게 향수를 불러 일으키는 가치가 있습니다.
이제 데이터베이스에 모든 종류의 로그 (메시지 보드 로그인, 메시지 등) 인 여러 테이블이 있습니다. 재미있는 것은 정확한 날짜가 있지만 사용자 이름이나 사용자 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] 삭제
몇 마디 만하겠습니다