2017-09-01 23 views
1

我正試圖找到一種方法來在視圖中加入下列兩個表,其中角色和級別都組合爲一個密鑰ID並且該級別的該角色的統計信息被傳播出。我可以在視圖中執行此操作還是需要廢棄單獨的表格?如何使用多個密鑰連接表

表1:

Character | Level | Attack Value| 
Character A | 1  | 2 
Character A | 2  | 2 
Character B | 1  | 3 
Character B | 2  | 4 

表2:

Character | Level | Defense Value| 
Character A | 1  | 4 
Character A | 2  | 5 
Character B | 1  | 1 
Character B | 2  | 2 

期望的結果:

Character | Level | Defense Value | Attack Value| 
Character A | 1  | 4    |2 
Character A | 2  | 5    |2 
Character B | 1  | 1    |3 
Character B | 2  | 2    |4 
+0

使用字符和 –

+1

水平嘿@Jeremy加入他們的行列。這是一個好的第一個問題,但是你不應該同時使用sql-server和mysql標籤,你幾乎肯定不是同時開發這兩個標籤。我刪除了標籤,就像您在標籤描述中看到的一樣,應該不會使用**。請編輯你的問題離開sql-server或mysql(希望你正在使用的那個)。歡迎來到SO! –

+0

[如何在第二個連接表中使用多個條件進行連接?](https://stackoverflow.com/questions/4139602/how-to-do-a-join-with-multiple-conditions-in -the-second-joined-table) – Khalil

回答

2

您只需參加由多個值

CREATE VIEW view_name AS 
SELECT 
    t1.Character, 
    t1.Level, 
    t2.`attack value`, 
    t1.`defense value` 
FROM 
    table1 t1 
JOIN table2 t2 ON 
    t1.Character = t2.Character 
    AND t1.Level = t2.Level 
2

JOIN表1和表2中使用的字符和水平

SELECT t1.character, 
     t1.level, 
     t2.[defense value], 
     t1.[attack value] 
    FROM table1 t1 
    JOIN table2 t2 
    ON t1.character = t2.character 
    AND t1.level = t2.level