2011-11-11 4 views
0

내가 가지고있는 문제는 테이블에 쿼리가 모두 같은 열을 가져야한다는 것입니다. 특정 coloumns에서만 유니온과 조인을 사용하여 쿼리하는 방법이 있습니까? 위에서조인에서 생성 된 특정 열의 조합?

SELECT Client.Client_ID, Client.First_Name, Client.Last_Name, Client.Company_Name from Client 
union 
select Agency_Employee.Employee_ID, Agency_Employee.First_Name, Agency_Employee.Last_Name, '' 
from Agency_Employee 
union 
select Agency_ID, '', '', Agency_Name from Admin_Agency 
SELECT proj.ProjectID, A.Project_Title, B.Account_ID, B.Username, B.Access_Type FROM Project_Assigned proj 

JOIN Account B 
    ON proj.AccountID = B.Account_ID 
JOIN Project A 
    ON proj.ProjectID = A.Project_ID 

WHERE proj.ProjectID = 1; 

내가 1을 투사하고 노동 조합과 내가 다른에서 해당 계좌 번호의 추가 등 FIRST_NAME 등의 정보, LAST_NAME을 얻으려고 할당 된 계정과 일치 만든 조인 쿼리를 결합하기 위해 노력하고있어 위 client, agency_employee와 같은 테이블.

+1

@SabeenMalik 문제는 열 이름이 아니라 열 수입니다. – Romain

+0

질문에 관해서, 나는 내가 이해할 지 모르겠다. 세 개의 소스 테이블에 대한 샘플 테이블 데이터와 원하는 결과 세트를 제공 할 수 있습니까? – Romain

+0

@Romain thanks 전적으로 MySQL이 첫 번째 선택에서 이름을 사용한다는 사실을 잊어 버렸습니다! –

답변

1

예입니다. 열의 이름을 지정하여이 작업을 수행 할 수 있습니다. 열의 이름은 동일해야합니다. 귀하의 경우에는 당신은 그런 식으로 작업을 수행 할 수 있습니다 나는 다음과 같은 쿼리를 사용하여 노동 조합을 병합하는 방법을 정확하게 코드에 표시되지 않습니다하지만 당신은 하위 쿼리와 함께 할 수

SELECT Client.Client_ID, Client.First_Name, Client.Last_Name, Client.Company_Name from Client 
union 
select Agency_Employee.Employee_ID as Client_ID, Agency_Employee.First_Name, Agency_Employee.Last_Name, '' as Company_Name 
from Agency_Employee 
union 
select Agency_ID as Client_ID, '' as First_Name, '' as Last_Name, Agency_Name as Company_Name from Admin_Agency 

. 여기 예가 있습니다 :

select a.item1, b.count from table_a a 
inner join (
    select item1, count(*) as count 
    from table_b 
    group by item1 
) b on b.item1 = a.item1 
+0

내가 겪고있는 문제는 쿼리에서 생성 된 조인에이를 어떻게 추가 하는가입니다. table_a b.item1에 내부 조인 ( 항목 1 에 의해 table_b 그룹에서 계산 로) (계산 *, 항목 1을 선택) B에서 선택 a.item1, b.count : – Malcr001

+0

이 같은 sub_query로 그것을 할 수 있습니다 = a.item1 –