JOIN的類型有幾種:LEFT,RIGHT,FULL OUTER,INNER和CROSS。你所使用的類型是由你想要看到的結果所決定的。例如,使用LEFT OUTER JOIN將會從列出的第一個表格中返回所有有關的行,而同時如果沒有信息與第一個表格相關的話將潛在地從所列出的第二個表格中加入行。
在這裡INNER JOIN和暗含的JOIN是不同的,INNER JOIN將只返回那些在兩個表格中都有數據的行。
對第一個SELECT查詢使用如下JOIN聲明:
SELECT table1.column1, table2.column2 FROM table1 INNER JOIN table2
ON table1.column1 = table2.column1;
子查詢
子查詢,或叫子選擇聲明,是在一個查詢中將結果組作為資源使用的一個途徑。他經常被用來對結果進行限制或定義,而不是運行多個查詢或操縱應用軟件之中的數據。有了子查詢,你可以參考表格來決定數據的內含,或是在一些情況下,返回一個專欄,而這個專欄是一個子選擇的結果。
下面的例子中使用了兩個表格。一個表格中包含了我想要返回的數據,而另一個表格則給出一個比較點來確定什麼數據是我確實感興趣的。
SELECT column1 FROM table1 WHERE EXISTS
( SELECT column1 FROM table2
WHERE table1.column1 = table2.column1 );
子查詢很重要的一個方面就是性能表現。便利性是有代價的,它取決於你所使用的表格和聲明的大小,數量和復雜性,還有你可能會允許你的應用軟件做處理工作。每一個查詢在被主查詢作為資源使用之前,都將被完整地單獨處理。如果可能的話,創造性地使用JOIN聲明可以以較少的滯後時間提供出相同的信息。