2016-05-27 18 views
0

初心者からSQLへ、助けてください。私は唯一の基本的な構文を知っているが、私は、私はそれをしたいものを達成することはできません知っている:行が見つからない場合はNULLを返します。SQL

user_table

id name 
1 george 
2 harry 
3 ralph 

updown_table

id updown 
1 up 
3 down 

マイ

は、2つのテーブルを持っていますクエリ:

select 
    u.id, 
    u.name, 
    up.updown 
from  
    user_table u, updown_table up 
where 
    u.id = up.id; 

私はIDの1,2,3を返し、2にNULL値を入れたいと思います。しかし、明らかにエントリがupdownに存在しないので、1と3だけを返します。

、 お願いします?

+2

参照[加入のこの偉大な説明](http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/):あなたのためのリファレンスとしても

Select u.id, u.name, up.updown From user_table u left join updown_table up ON u.id=up.id; 

。そして、この古い暗黙的な結合構文をこれ以上使用しないでください。 –

+3

最初に学ぶべきことは、古い、カンマ区切りの暗黙的な結合ではなく、明示的な 'JOIN'構文です。 – jarlh

+0

@jarlh:私はあなたの考え方が好きです:) –

答えて

2

多分これを試してみてください。 Difference between JOIN and INNER JOIN

+0

ありがとうございます!これは間違いなく正しい方向に私を置きます。 – namja

+0

@namjaあなたはこの質問を閉じるために私の返信をあなたの最終回答として受け入れることができます。ありがとう! – BenBen

関連する問題