2012-03-22 9 views
0

Ok 쿼리는 관리자, 직원 및 클라이언트의 계정 세부 정보를 얻기 위해 3 개의 테이블에서 정보를 취합니다. Admin_Agency, Agency_Employee 또는 Client 테이블에 누군가가 있기 때문에 문제가 있습니다. 여러 개의 열이 포함되어 있습니다. NULLS는 아래를 참조하십시오. ,열 결합?

Client.First_Name, FIRST_NAME

에 Admin_Agency.Admin_First_Name 및 Admin_Agency.Admin_First_Name

Client.Last_Name : 여기에 내가 좋아하는 것

어떻게 든 더 NULL 열이 없기 때문에 다음과 같은 열을 결합 좋아하는 Admin_Agency.Admin_Last_Name 및 Admin_Agency.Admin_Last_Name into Last_Name

마지막으로 "Profile_Pic"이라는 모든 열.

이 작업을 수행 할 수 있습니까?

+--------------------+---------------------+------------+------------------+-----------------+-------------+------------+-----------+-------------+------------+-----------+-------------+ 
| User_Comment  | Time_Stamp   | Account_ID | Admin_First_Name | Admin_Last_Name | Profile_Pic | First_Name | Last_Name | Profile_Pic | First_Name | Last_Name | Profile_Pic | 
+--------------------+---------------------+------------+------------------+-----------------+-------------+------------+-----------+-------------+------------+-----------+-------------+ 
| Lorem ipsum dolor | 2012-03-21 23:40:15 |   18 | Fredric   | Beskoski  | 002.jpg  | NULL  | NULL  | NULL  | NULL  | NULL  | NULL  | 
+--------------------+---------------------+------------+------------------+-----------------+-------------+------------+-----------+-------------+------------+-----------+-------------+ 
| Lorem ipsum dolor | 2012-04-21 23:40:05 |   20 | NULL    | NULL   | NULL  | Alan  | James  | 032.jpg  | NULL  | NULL  | NULL  | 
+--------------------+---------------------+------------+------------------+-----------------+-------------+------------+-----------+-------------+------------+-----------+-------------+ 
| Lorem ipsum dolor | 2012-05-24 21:40:12 |   21 | NULL    | NULL   | NULL  | NULL  | NULL  | NULL  | David  | Calson | 044.jpg  | 
+--------------------+---------------------+------------+------------------+-----------------+-------------+------------+-----------+-------------+------------+-----------+-------------+ 

Admin_First_Name, Admin_Last_Name 및 Profile_Pic은 채워져 있지만 나머지는 NULL입니다.

쿼리 :

SELECT 
    Comments.User_Comment, Comments.Time_Stamp, Account.Account_ID, 
    Admin_Agency.Admin_First_Name, Admin_Agency.Admin_Last_Name, Admin_Agency.Profile_Pic, 
    Agency_Employee.First_Name, Agency_Employee.Last_Name, Agency_Employee.Profile_Pic, 
    Client.First_Name, Client.Last_Name, Client.Profile_Pic 

FROM Comments 
    LEFT JOIN Account ON (Account.Account_ID = Comments.Account_ID_FK4) 
    LEFT JOIN Admin_Agency ON (Account.Account_ID = Admin_Agency.Agency_ID) 
    LEFT JOIN Agency_Employee ON (Account.Account_ID = Agency_Employee.Employee_ID) 
    LEFT JOIN Client ON (Account.Account_ID = Client.Client_ID) 

WHERE Comments.Design_ID_FK = 5 

이 도움을 주셔서 감사합니다!

답변

0

첫 번째 우선 순위 (클라이언트 또는 관리자의 값)를 먼저 확인해야합니다. 예를 들어 클라이언트에서 첫 번째 값을 확인하려면 다음과 같이 입력하십시오.

select if(Client.First_Name is Null,Admin_Agency.Admin_First_Name,Client.First_Name) 
as first_name ,... //Same for other columns 
From ... 
Joins.... 
Where ... 
+0

감사합니다. – Malcr001

0

왼쪽 또는 오른쪽 외부 조인은 널 (null)을 줄 수 있습니다.

내부 조인은 적은 수의 행을 줄 수 있지만 "조인"에서 모든 행을 가져 오는 행은 없습니다.