İki tablom var: table1
ve table2
. id1
veya id2
kullanarak onlara katılabilirim. id1
kullanmayı tercih ediyorum, ancak bazı satırlarda olduğu gibi id1
eksik, bu yüzden id2
kullanmak zorundayım. Aşağıdaki sözdizimi doğru mu:VE/OR deyimleri SQL JOIN
SELECT *
FROM table1 as a
LEFT JOIN table2 as b
ON (a.id1 is not null and a.id1 = b.id1) or
(a.id2 is not null and a.id2 = b.id2)
Bu bazı sonuçları döndürür ama daha önce kullanılmış görmedim olarak geçerli olup olmadığından emin olmak istiyorum.
Bunu yapmanın daha iyi yolları var mı?
Bazı örnek verileri ve beklenen bir sonucu eklemenizi öneririm;). –
Sözdiziminiz açıklamanızdan sonra doğrudur. – Wibbler
'Boş değil 'gereksizdir. 'A.id1 = b.id1' karşılaştırması, "a.id1" öğesindeki null değerler için herhangi bir "eşleşme" vermeyecektir ('(a.id1 = b.id1)' e eşittir veya (a.id2 = b) .id2) 'sanırım muhtemelen bir şey istiyorum (a.id1 null ve a.id2 = b.id2) veya (a.id2 null ve a.id1 = b.id1) ' –