2012-03-19 6 views
2

データベースに2つのテーブルがあります。表1には注文番号が含まれています。表2には、すべての注文データ(注文番号を含む)が含まれています。リンクされた列がnullになる可能性がある2つのテーブルから選択

今、表1のすべての列と表2のすべての注文データを選択します。したがって、表1の特定の項目にこの注文番号が含まれていない場合は、他の列はすべてNULLにする必要があります。しかし、注文番号が含まれていれば、2番目のテーブルにリンクして、これらのデータを選択してください。

出力のようなものでなければなりません:

column1tab1 column2tab1 order_number product amount 
xx   yy   123  p1  2 
xx   yy   456  p3  4 
xx   yy   NULL NULL NULL 
xx   yy   789  p2  1 
etc... 

私は別のものを試してみましたが、私は唯一のヌルと注文番号、またはすべてを持つすべての行を取得しますが、私は、同時にそれらの両方を取得することはできません。誰かが解決策を知っているので、私はこれを1つのクエリで行うことができますか?

+1

外を見上げては –

+0

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html –

答えて

1

何を試しましたか?シンプルな左のジョインは、そのトリックを行います。 例:

select * 
from orders o left join orderdata od on o.orderId=od.orderid 
+1

感謝と合流します!私はISNULLステートメントで多くのことを試みましたが、LEFT JOINはそのトリックを行いました。もう一度LEFT JOINを押すと、製品の価格を得ることができます(もう1つの表にあります)。 – simP

+0

お寄せいただきありがとうございます。あなたの問題を解決するなら、その質問を答えとして記入してください。 – Diego

0
select t1.* 
from table1 as t1 right join table2 as t2 on t1.order_number=t2.order_number 
関連する問題