2011-06-25 45 views
0
$sql ="(SELECT Drive.DriveID,Ram.Memory from Drive,Ram where Drive.DriveID = Ram.RamID) UNION 
(SELECT Drive.DriveID,External.Memory from Drive, External where Drive.DriveID = External.ExtID)"; 

假設我也想獲得Ram.Name。我該怎麼做呢?如果我在第一個SELECT語句中使用Ram.Name,它不會產生正確的結果。我有一個SQL查詢鏈接3個表使用UNION:

解決這個問題的任何方法?我想用UNION來做。

回答

2

怎麼樣:

SELECT Drive.DriveID,Ram.Memory,Ram.Name 
FROM Drive,Ram WHERE Drive.DriveID = Ram.RamID 
UNION 
SELECT Drive.DriveID,External.Memory,NULL 
FROM Drive, External WHERE Drive.DriveID = External.ExtID 

這將在所有第二的結果的第四列有NULL選擇

+0

第4列不應顯示,evenas一個空列 – work

+0

@Work:您無法執行兩列查詢和三列查詢的UNION,因此您要麼執行兩個查詢,要麼添加一些代碼來過濾NULL。 –