2012-05-18 21 views
1

我有以下情形:MySQL的:凌晨一點別樣的主從SQL查詢的

Table 1 
group_id 
location 

Table 2 
group_id 
empname 

我需要以下的輸出:

group_id, location, empname 
1   ABC  NULL 
1   ABC  XYZ 
1   ABC  PQR 

所以第一行是主行其餘的行都是該主人的詳細行。

我怎樣才能得到這個輸出?

TIA

回答

1
SELECT t1.group_id,t1.location,NULL AS empname FROM Table1 t1 
UNION 
SELECT t1.group_id,t1.location,t2.empname 
FROM Table1 t1 INNER JOIN Table2 t2 ON t1.group_id=t2.group_id 
ORDER BY 1,3 

編輯: 只是別名第一個SQL語句作爲empname第3列。

+0

+1只是將null:CAST(NULL AS VARCHAR(100))作爲empname的別名。然後你可以這樣做:'ORDER BY group_id,empname' –

+0

@MichaelBuen。您正確使用該空值的別名。但我不想CAST NULL AS VARCHAR。因爲輸出應在主行顯示NULL。 –

+0

即使將其轉換爲varchar,它仍將顯示爲空。或者你可以扭轉聯盟,ORDER BY適用於UNION的所有查詢,而不是最後一個只有 –