2009-04-21 13 views
34

, 13 ayrı katılmak ifadeleri SQLite etti: SQLite hangi birleşimleri destekliyor? <a href="http://sqlite.org/syntaxdiagrams.html#join-op" rel="noreferrer">the join-op syntax</a> göre

, 
JOIN 
LEFT JOIN 
OUTER JOIN 
LEFT OUTER JOIN 
INNER JOIN 
CROSS JOIN 
NATURAL JOIN 
NATURAL LEFT JOIN 
NATURAL OUTER JOIN 
NATURAL LEFT OUTER JOIN 
NATURAL INNER JOIN 
NATURAL CROSS JOIN 

hepsi benzersiz midir? Hangi eşdeğerdir?

*OUTER JOIN 
*NATURAL OUTER JOIN 
*NATURAL CROSS JOIN 

ilk iki, bir <join type> çünkü OUTER azaltmak amacıyla, aynı zamanda bir içermelidir:

cevap

49

SQLite gramer aşağıdaki yasadışı, buna göre, the SQL-92 spec' s' den biraz daha farklıdır Bundan önce <outer join type>. Son olarak, NATURAL sadece <qualified join> 'lerde değil, <cross join>' lerde olabilir. Bunların herhangi bir spesifikasyona göre davrandığı görülmemektedir, bu yüzden onlardan kaçınmak iyi bir fikirdir.

olarak the mailing list tarihinde cevaplandı, SQLite3 sadece üç katılır destekler: CROSS JOIN, INNER JOIN ve LEFT OUTER JOIN. Aşağıdakiler eşdeğeri:

, == CROSS JOIN 
JOIN == INNER JOIN 
LEFT JOIN == LEFT OUTER JOIN 

olarak DOĞAL anahtar kelime bulma ve aynı adı sütunlarında eşleşen için kısaltmadır ve katılmak türünü etkilemez the wikipedia article açıklanmıştır.

SQLite page 'RIGHT' ve göre 'FULL'   OUTER JOIN sitesindeki desteklenmez.

+0

Hayır DOĞRU DIŞ veya TAM DIŞI desteği var mı? –

+5

Hayır, ve bunu açıkça ekleyeyim, teşekkürler. –

İlgili konular