2011-10-28 13 views
0

OrderID = 2がTable1に存在し、Table2に存在しないことを確認してから1またはtrueを返します。2つのテーブルの間のデータを確認する

OrderID = 2が0またはfalseを返し、その後、両方のテーブルに存在している場合..

はどのようには、SQLクエリで行うことができますか?

Table1 
======= 
ID | OrderID 
1 2 
2 2 

Table2 
====== 
OrderID | Name 
1   A 
2   B 

答えて

1

これって何ですか?

select ID,t1.OrderID, t2.OrderID is null as notinboth 
from table1 as t1 left join table2 as t2 using (OrderID); 
0

SELECT ID FROM Table1 INNER JOIN Table2 ON Table2.OrderID = Table1.OrderID

あなたはIDまたはnullを取得しますか。

+0

ERR。内部結合? –

+0

はい。内部結合は、両方のテーブルに一致がなければならないことを意味します。そうしないと結果が得られません。したがって、両方のテーブルでOrderIDを使用できる場合は、選択したものが取得されます。そうでない場合は、NULLが返されます。 – dwalldorf

+0

それ以外の場合は、ヌルではなく行がありません。 –

-1
select 
    case when 
     exists (select * from table1 where orderid = 2) and 
     exists (select * from table2 where orderid = 2) 
    then 0 
    else 1 
    end