2017-07-26 82 views
0

我有一個名爲testPPDS的表,其中包含我的個人記錄。 ProjectUID是唯一的(儘管沒有唯一密鑰的強制執行)。環境是空白的。需要生成記錄,一對多。 MySQL

+------------+-------------+-------------+ 
| ProjectUID | ProjectName | environment | 
+------------+-------------+-------------+ 
| 1   | Project1 |    | 
| 2   | Project2 |    | 
+------------+-------------+-------------+ 

我有一個名爲testMASTER另一個表包含環境的信息,我需要填充testPPDS表。它的數據是低於...

+------------+-------------+ 
| ProjectUID | environment | 
+------------+-------------+ 
| 1   | DEV1  | 
| 1   | DEV2  | 
| 2   | DEV3  | 
| 2   | DEV4  | 
+------------+-------------+ 

我想生成一個記錄,詳細ProjectUIDs和所有他們顯示的環境。然後我會用這個SELECT來填充新表。

+------------+-------------+-------------+ 
| ProjectUID | ProjectName | environment | 
+------------+-------------+-------------+ 
| 1   | Project1 | DEV1  | 
| 1   | Project1 | DEV2  | 
| 2   | Project2 | DEV3  | 
| 2   | Project2 | DEV4  | 
+------------+-------------+-------------+ 

我想各種各樣的連接,以獲得這一點,似乎沒有工作。有沒有人跑過這樣的事情?我很欣賞任何人的建議。 JC

+0

您想如何處理沒有TestPPDS但是項目有testMasters或者反之亦然的情況?或者你只關心兩者中存在的那些? – xQbert

回答

1

SELECT testMASTER.ProjectUID , testPPDS.Projectname , testMASTER.environment FROM testMASTER RIGHT JOIN testPPDS ON testPPDS.ProjectUID = testMASTER.ProjectUID

enter image description here

+0

你得到答案卡瑪艾哈邁德使這是一個聯接,這是我需要更好地理解。 JW –

+0

爲什麼選擇正確的加入?爲什麼不是左或內?沒有任何問題表明應該使用另一個。 – xQbert

1

好球員,我幾乎尷尬的是,我問這個答案是那麼容易。我發現的解決方案如下...

SELECT testPPDS.ProjectUID, testPPDS.ProjectName, testMASTER.environment 
FROM testPPDS, testMASTER 
WHERE testPPDS.ProjectUID = testMASTER.ProjectUID; 

我會留下這裏作爲他人的幫助和我的白癡紀念碑。

JW

+1

考慮使用'FROM TESTPPDS INNER JOIN testMaster ON testPPDS.ProjectUID = testMASTER.ProjectUID'多指示','在from子句中是舊連接方法,並且在使用外連接時尤其難以維護。 – xQbert

相關問題