2017-03-22 1 views
1

각 테이블에는 4 개의 열 (id, name, games, points)이 있어야합니다. 컬럼 이름은 두 테이블에서 동일합니다. 하나의 큰 테이블에서 두 열의 모든 것을 선택하고 싶습니다 (축구의 경우 MLS와 프리미어 리그에 한 테이블 씩 참여한 것과 같습니다). 이 코드 시도했다 :동일한 열을 가진 두 개의 테이블 중에서 선택하십시오.

SELECT * FROM league1 JOIN league 2; 

을하지만 내가 원하는 출력이 아니었다.

CREATE TABLE `league1` (
`id` int(11) DEFAULT NULL, 
`Navn` varchar(50) COLLATE utf8_danish_ci NOT NULL, 
`kampe` int(11) DEFAULT NULL, 
`Point` int(11) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci ROW_FORMAT=DYNAMIC 

CREATE TABLE `league2` (
`id` int(11) DEFAULT NULL, 
`Navn` varchar(50) DEFAULT NULL, 
`kampe` int(11) DEFAULT NULL, 
`Point` int(11) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 

가이 같은 열에서 그들과 합류 할 수 없습니다, 그래서 나는 여전히 두 테이블에서 4 열하지만 모든 행이 있습니다 내 테이블 exatly 동일 만들어지지 않습니다 볼 수 있습니까?

답변

1

중복을 유지하려면 union all을 사용하십시오. 그리고 필드의 개수가 다른 경우에 당신은 당신은 두 테이블의 내용을 결합하는 것을 제외한 참여하지 않음 *

SELECT * FROM league1 
    UNION ALL 
    SELECT * FROM league2 
+0

내가 이것을 mysql에 쓰는다면 그것은 다음과 같다 : # 1271 - 'UNION'연산을위한 잘못된 조합의 데이터 정렬 –

+0

어쨌든 테이블이 "평등"하지 않은 것처럼 보인다. 질문을 업데이트하여 각 리그의 작성 테이블을 표시하십시오. 하지만 두 테이블 모두 같은 날짜 유형을 갖도록 'CAST'를 수행해야하는 것처럼 보입니다. –

+0

어쩌면 당신 말이 맞아요. 어리석은 질문이지만, 어딘가에'create table'을 찾을 수 있을까요? –

1

대신 두 테이블에서 필드 일치를 선언 할 수

SELECT * 
FROM league1 
UNION ALL 
SELECT * 
FROM league2; 
관련 문제