2011-01-10 62 views
3

我的X表有設施名稱,生產企業名稱,但我需要將其顯示爲facilityID和manufacturerID。結合加入

我寫了兩個連接來顯示它們:

第一個dislays設施ID:

select T1.facilityID, t2.* 
from lkuFacility t1 right join X t2 on t1.facilityName = t2.facility 
and t1.siteCode = t2.siteID 
order by siteid 

第二個顯示器製造商ID:

select T1.manufacturerID, t2.* 
from lkuManufacturer t1 right join X t2 on t1.manufacturerName = t2.manufacturer 
order by manufacturerid 

我怎樣才能把它們放進一個查詢,在一個結果屏幕上顯示設施ID和製造商ID?

回答

6

如果你希望他們根據表X鏈接,試試這個:

SELECT f.facilityID, m.manufacturerID, X.* 
FROM X 
LEFT JOIN lkuFacility AS f 
ON f.facilityname = X.facility AND f.siteCode = X.siteID 
LEFT JOIN lkiManufacturer AS m 
ON m.manufacturerName = X.manufacturer 

編輯:
如果你想將它們加入到同一個結果集,但不會並排側(如以上),你應該能夠使用UNION運營商,像這樣:

select T1.facilityID, t2.* 
from lkuFacility t1 right join X t2 on t1.facilityName = t2.facility 
and t1.siteCode = t2.siteID 
UNION ALL 
select T1.manufacturerID, t2.* 
from lkuManufacturer t1 right join X t2 on t1.manufacturerName = t2.manufacturer 
order by manufacturerid 
+0

謝謝!第一個解決方案效果很好! – 2011-01-10 16:18:27

0

您可以使用UNION ALL運算符來連接兩個查詢。

+0

您應該使用UNION ALL在這種情況下不作爲UNION查詢集是相互排斥的。 – HLGEM 2011-01-10 16:13:31

+0

是的!這是寫作。謝謝。 – joksnet 2011-01-10 16:15:09

0

如果你不介意他們在不同的行然後做一個UNION ALL語句。如果你想同時在同一條線上,你可能必須做兩聯接到X平臺。