2016-12-13 70 views
0

我有2代表這樣整個結果集,並返回NULL在是或CharacterId不TableA中入門如果需要

所以結果應該是這樣的:

charID SkillName 
------------------- 
123  Jumping 
123  Running 
NULL  RangedAttack 
123  MeleeWeapon 
NULL  AutomaticWeapon 
123  Handgun 
NULL  EarthMagic 
NULL  WaterMagic 

我已經試過這樣:

select a.characterId As charID, b.skillName AS SkillName 
from tableA a 
left join tableB b ON a.skillId = b.skillId 
where characterId = 123 

這一個:

select a.characterId As charID, b.skillName AS SkillName 
from tableA a 
full outer join tableB b ON a.skillId = b.skillId 
where characterId = 123 

但兩者的查詢讓我沒有結果,儘管我知道應該給我的東西。

有沒有合適的方法來獲得我需要的結果?

謝謝!

+0

您應該使用'full join'並將'where'條件移至'join'子句。 –

回答

3

left join是錯誤的順序:

select a.characterId As charID, b.skillName 
from tableB b left join 
    tableA a 
    on a.skillid = b.skillId and a.characterId = 123; 

如果你想在TableB所有的技能,那麼就應該是在left join第一個表。