2011-02-02 117 views
0

我想獲得一個記錄集,我可以用一個關係表比較結果:的MySQL:查詢比較

character_abilities 
id ability_id character_id 
1  1    43 
2  2    43 
3  5    43 
4  7    43 
5  8    43 
6  9    43 
7  1    75 
8  2    75 
9  3    75 
10 5    75 

我想獲得這樣的結果:

ability_id_1 character_id_1 ability_id_2 character_id_2 
1    43    1    75 
2    43    2    75 
NULL   NULL    3    75 
5    43    5    75 
7    43    NULL   NULL 
8    43    NULL   NULL 
9    43    NULL   NULL 

對於這個結果,我認爲做這樣的事情,但沒有成功:

SELECT character_1.ability_id AS ability_id_1, character_1.character_id AS character_id_1, character_2.ability_id AS ability_id_2, character_2.character_id AS character_id_2 
FROM character_abilities AS character_1 
RIGHT JOIN character_abilities AS character_2 
ON character_2.character_id = 2 AND character_1.ability_id = character_2.ability_id 
WHERE character_1.character_id = 1 AND character_1.ability_id = character_2.ability_id 

不幸的是,這只是返回每個角色都有共同的能力。

我的問題是:
我可以編碼查詢來獲取每個字符的道具像結果的例子嗎? 我應該爲每個角色查詢併合並它們嗎?

回答

0

如果我理解這個問題,聽起來像是一個FULL OUTER JOIN的候選人,這是MySQL不具備的。 See this question for alternatives.

+0

是的,它是完整的外部聯接,感謝您的信息 – vitto 2011-02-03 11:38:03