我正在尝试将列中的值与使用同一表中的联接进行比较。 这是表格的示例:
|favorite item|answer|name|
-----------------------------
|color|red|jake|
|animal|bear|jake|
|food|pizza|jake|
|color|blue|sally|
|movie|frozen|sally|
|food|pasta|sally|
我尝试使用联接和联合,但是它们都无法完全获得我想要的东西。
这是我所能获得的最接近的结果:
select j.favorite, s.favoite, j.answer, s.answer
from testTable j
full join testTable s on (j.favorite=s.favorite) and s.name='sally'
where j.name = 'jake';
但这给了我
-----------------------------
|color|color|red|blue|
|animal|null|bear|null|
|food|food|pizza|pasta|
我希望它为两个学生提供null值:
|color|red|blue|
|animal|bear|null|
|food|pizza|pasta|
|movie|null|frozen|
希望这是有道理的,非常感谢您的帮助。谢谢
答案 0 :(得分:1)
FULL JOIN
很棘手-您似乎想要这么做。关键是在JOIN
之前 进行过滤:
select j.favorite, s.favoite, j.answer, s.answer
from (select j.*
from testTable j
where j.name = 'jake'
) j full join
(select s.*
from testTable s
where s.name = 'sally'
) s
on j.favorite = s.favorite;