iki tablo arasındaki verileri kontrol et

Tablo1'de OrderID = 2 olup olmadığını kontrol etmek istiyorum ve Tablo 2'de mevcut değil, sonra 1 veya true döndür.

Her iki tabloda OrderID = 2 varsa, 0 veya false değerini döndürür.

Bu, SQL sorgusunda nasıl yapılabilir?

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

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

3 cevap

Bunun gibi bir şey?

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

SELECT ID'DEN Table1 INNER JOIN Table2 ON Tablo2.OrderID = Table1.OrderID

Kimliği veya null kodunu alırsınız.

0
katma
err. iç birleşim?
katma yazar Michael Krelin - hacker, kaynak
Aksi takdirde hiç satır alamazsınız, null değil.
katma yazar Michael Krelin - hacker, kaynak
hayır, hiçbir şey almazsınız, null fetch_row() tarafından veya herhangi bir sayı ile iade edilir, böylece satır için kimlik alamazsınız.
katma yazar Michael Krelin - hacker, kaynak
Evet. İç katılma, her iki tabloda da bir eşleşme olması gerektiği anlamına gelir. Aksi halde sonuç almayacaksınız. Bu nedenle, OrderID her iki tabloda da mevcutsa, seçtiğiniz şeyi alırsınız, aksi takdirde null
katma yazar dwalldorf, kaynak
PHP'de boş olan
katma yazar dwalldorf, kaynak