2013-12-12 3 views
-6

3 개의 테이블 데이터를 하나의 테이블로 가져올 수 있습니까? 그렇다면 코드를 알려주십시오.3 개의 테이블 데이터를 하나의 테이블로 가져올 수 있습니까?

세 개의 테이블이 있고 데이터를 모두 표시하려면이 조인 문을 사용해야합니다.

select * 
    from [runners 2000-2005] 
    join races on races.race ID = [runners 2000-2005].race ID 
    join results on results.race ID = [runners 2000-2005].race ID 
    where 1=1 

나는이 모든 테이블

에서 일반적으로 열이 원인 함께 모든 테이블을 연결하는 레이스 ID를 사용하지만 난 내가 주자로 표 결과에서 데이터와 레이스를 가져올 수 있다면 더 좋을 것이라고 생각 2000-2005. 큰 테이블 하나 만들기.

xx 나는 이것이 Paul Im에게 초보자를 돕기를 바랍니다.

+2

"코드를 알려주십시오"이 사이트의 실제 내용이 아닙니다. 당신은 당신이 현재 알고있는 것을 상세하고, 무엇을 시도했는지 그리고 주제에 대한 기본적인 이해를 증명할 필요가 있습니다. – hammus

+0

예, 절대적으로! 세부 사항은 매우 모호하고 명확하지 않은 질문으로는 불가능합니다 ..... [좋은 질문을하는 방법] (http://stackoverflow.com/help/how-to-ask)을 공부하고 받아주세요. –

+0

ok 자세한 내용을 알려 드리겠습니다 – user3060111

답변

0

언급 된 바와 같이 다소 모호하지만 테이블을 뒤집어 보면 [경기 ID]가 [주자] 테이블에 표시되는 것을 볼 수 없으므로 주자가 중복되어 결과가 표시됩니다. 관계가 없으므로 주자와 상관 관계가 없습니다. 나는 스키마를 제공하지 않았기 때문에 표식이 될 수도 있으므로 테이블 스키마를 자유롭게 사용하고 기대했던 것을 사용하고 있습니다.

아마, 또한 내가 쉽게 먼저 가장 일반적인 정보 테이블에서 선택하거나 계층 구조의 꼭대기에 앉아 찾을 사용 테이블 별칭 그냥 쿼리를 줄일 수 있나요이

CREATE TABLE [runners 2000-2005] ([Runner ID] INT, [First Name] NVARCHAR(200), [Last Name] NVARCHAR(200), [Other Details] NVARCHAR(500)) 
CREATE TABLE [races] ([Race ID] INT, [Race Name] VARCHAR(200), [Race Location] VARCHAR(200)) 
CREATE TABLE [results] ([Race ID] INT, [Position] INT, [Runner ID] INT) 

SELECT 
T1.[Race ID] 
, T1.[Race Name] 
, T1.[Race Location] 

, T2.[Runner ID] 
, T2.Position 

, T3.[First Name] 
, T3.[Last Name] 
, T3.[Other Details] 

INTO [all race details 2000-2005] /*Remove this line if you just want a query*/ 
FROM races AS T1 
INNER JOIN results AS [T2] ON T2.[Race ID] = T1.[Race ID] 
INNER JOIN [runners 2000-2005] AS [T3] ON T3.[Runner ID] = T2.[Runner ID] 

SELECT * 
FROM [all race details 2000-2005] 

같은 시도 내 의견으로는 races 테이블입니다.

처음에는 경주가 있고, 다음으로 경주가 끝나고 경주에서 주자의 세부 사항이 완성됩니다.

SELECT...INTO...FROM은 신선한 테이블을 생성합니다. 그렇지 않으면 CREATE TABLE...INSERT INTO TABLE.. SELECT까지 가능합니다.

+0

thx alot thx 나는이 글을 다른 사람들에게 도움이되기를 바란다. thx – user3060111

관련 문제