2つのテーブル間のデータをチェックする

OrderID = 2 がTable1に存在し、Table2に存在しないかどうかを確認してから、1またはtrueを返します。

両方のテーブルに OrderID = 2 が存在する場合は、0またはfalseを返します。

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

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

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

3 答え

そんな感じ?

select ID,t1.OrderID, t2.OrderID is null as notinboth
from table1 as t1 left join table2 as t2 using (OrderID);
1
追加された
select 
    case when 
        exists (select * from table1 where orderid = 2) and 
        exists (select * from table2 where orderid = 2) 
    then 0 
    else 1 
    end
1
追加された

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

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

0
追加された
間違い内部結合?
追加された 著者 Michael Krelin - hacker,
そうでなければ、ヌルではなく行を一切取得しません。
追加された 著者 Michael Krelin - hacker,
いいえ、あなたは何も得られません。ヌルは fetch_row()などによって返されます。
追加された 著者 Michael Krelin - hacker,
はい。内部結合は、両方のテーブルに一致がなければならないことを意味します。そうしないと結果が得られません。したがって、両方のテーブルでOrderIDが使用可能な場合は、選択したものを取得します。そうでない場合は、 null
追加された 著者 dwalldorf,
PHPではnullです
追加された 著者 dwalldorf,