View 이상이 포함된 여러 테이블 동일한 열
문제
나는 네 가지 테이블을 포함하는 정확히 동일한 열,그리고 보기를 만들려는 모든 네 그래서를 쿼리할 수 있습니다.
이것이 가능한가요?
(지루한 이유가 없/도 허용하지 않는 그들을 결합하는 것이 무관!)
해결책
가정뿐만 아니라 같은 열 이름의 열 같은 동일한 데이터를 포함,당신은 당신을 만들려는 뷰가 연합의 모든 테이블이 있습니다.
다음과 같은 뭔가를 해야지만,나의 SQL 은 러:
(CREATE VIEW view_name AS
(SELECT * FROM table1
UNION
SELECT * FROM table2
UNION
SELECT * FROM table3));
다른 팁
그것은 가치가 있을 수 있습니다 주목할 필요할 수 있는 사용하는"조합"모두를 보존하는 독특한 행에서 존재할 수 있는 하나 이상의 테이블이 있습니다.표준 union 것이 중복되는 용어를 제거합니다.
이 말하는 것은 어렵에서 쿼리에는지 여부를 당신을 기대한 데이터를 기반으로 반환될 UNION,또는 포함하는 열을 줍니다.이것은 분명히 효과가 있습니다.
다음 샘플을 참고하십시오:
TableA
ID Name RelatedID
1 John 2
2 Paul 1
TableB
ID Name RelatedID
1 Ringo 1
2 George 1
TableC
ID Name RelatedID
1 Bob 1
TableD
ID Name RelatedID
1 Kate NULL
지금 실행하여 다음에 대한 쿼리를 이:
선택 ID,이름에서 TableA 모든 동맹 선택 ID,이름에서 각 모든 동맹 선택 ID,이름 tablec 에서 모든 동맹 선택 ID,이름에서 상정
이 결과는 다음과 같이 출력됩니다:
1 John
2 Paul
1 Ringo
2 George
1 Bob
1 Kate
이것이 당신이 무엇인가?그렇다면,당신은 당신을 사용하 UNION 쿼리가 있습니다.
지금는 경우,영향신 후에는 이산 보기 관련 데이터가 필요할 수 있습을 다음과 같은 것이 가능합니다.
SELECT A.ID MasterID, A.Name MasterName,
B.ID BandID, B.Name BandName,
C.ID BlackadderID, C.Name BlackadderName
D.ID BlackadderRealID, D.Name BlackadderRealName
FROM
TableA A
INNER JOIN
TableB B
ON
A.RelatedID = B.ID
INNER JOIN
TableC C
ON
B.RelatedID = C.ID
INNER JOIN
TableD D
ON
C.RelatedID = D.ID
이 결과는 다음의 데이터:
MasterID MasterName BandID BandName BlackAdderID BlackAdderName BlackadderRealID BlackadderRealName
1 John 2 George 1 Bob 1 Kate
2 Paul 1 Ringo 1 Bob 1 Kate
사용합니다.여기에 설명
를 사용하여 문 union
select * from table1
union
select * from table2
union
select * from table3
할 수 있는 경우에 당신은 동맹이 그들(나는 것이 좋을 포함하여 몇 가지로 표시하는 테이블이 각각의 레코드에서 왔):
select table1.column1, 1 as TableNumber
from table1
union
select table2.column1, 2 as TableNumber
from table2
.. etc ..
오히려 이상 조합,사용,동맹의 모든지 않는 한,당신은 특히 원하는 행을 복제하지 아니합니다.연합에서 자신의 이상을 실행(기 때문에 일종의 그것을 찾을 수 있 속),그리고 중복을 제거하의 행이 있습니다.