Sqlite3中的Join


1.概述
sqlite3是一種輕便的數據庫,由DDL(Data defination language),DML(Data manipulation language),TCL(Transaction control language)。
Join主要用於DML中SELECT語句中可選參數FROM后中用於連接兩個表以形成一個大的數據表。
2.join的幾種類型
2.1 cross join
A cross join B,其中A有m行n列,B有mm行nn列,得到的結果是n+nn列,m*mm行。
cross join 將A的每行分別跟B的每行進行組合形成結果表的行。
2.2inner join
是sqlite3的默認的join,所以A inner join B可以寫成A join B,但通常還要外加約束條件,否則返回結果跟cross join一樣。外加約束條件有ON(如ON A.a=B.b),USING(如using a或者USING(a,b)需要注意的是a,b必須都是A和B中的列名,並且如果是using(a,b),返回結果必須滿足A,B中的a,b都對應相等),注意到 ON返回的列有重復,而Using必須指明需要用的a,b。所以還有一種更簡潔的方式NATURAL JOIN,可以自動匹配A,B中所有相同列名,如果值一致就返回。
3.Outer join
sqlite3中outer join 與inner join 類似,也需要ON,USING的約束條件,否則也會返回Cross join 的結果。但與inner join 不同的是如果存在不滿足條件的行,將保留左邊的A的行,對於右邊的B的行忽略,這也就是所謂的LEFT OUTER JOIN,需要注意的是不能簡寫成OUTER JOIN,因為還有RIGHT OUTER 和FULL OUTER JOIN,不過后兩種暫時不支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM