2016-12-13 76 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第一个表。