平時習慣了oracle的連線語法,每次看到join這種格式的,都要想半天。還是把它列一下,方便自己下次用。
select table1.column, table2.column
from table1
[cross join table2] |
[natural join table2] |
[join table2 using (column_name)] |
[join table2
on(table1.column_name = table2.column_name)] |
[left|right|full outer join table2
on (table1.column_name = table2.column_name)];
1. cross join 比較簡單。
2. natural join 是自動把兩個表中,名稱相同的字段做等值比較。 (同名的字段,資料型別也要一樣)
3. using 是指定某個欄位做等值比較。
4. on 就是自定義的比較條件了。
5. 外連線加了左右,是因為這個語法,決定了表出現的順序。from後面的,是left表,join後面的,是right表。如果你想把from後面的表的所有資料都查詢出來,不論是否滿足條件,就用left outer join。同理,查詢table2的所以資料,用right outer join。同時有需求,就用full outer join。
這個full outer join可不能用 where table1.column_name(+) = table2.column_name(+) 代替啊,會報錯的。
自然連線,外連線,左外連線,右外連線
1.自然連線 結果基於表r和s的笛卡爾乘積,取對應的r和s中相同屬性組都相同的值,同時相同屬性組只保留乙個 先來看圖示,2個表以及自然連線的結果 操作的步驟 1.1找出2個表中相同的屬性組 屬性a加上屬性b 1.2找相同屬性組中,相同的屬性值所對應的元組 相同的屬性值 1.2.相同屬性值對應的元組 ...
sql99語法 左 右 外連線
二 外連線 應用 查詢乙個表中有,另乙個表沒有的記錄 特點 1.外連線的查詢結果為主表中的所有記錄 如果從表中有和它匹配的,則顯示匹配的值 如果從表中沒有和他匹配的,則顯示null 外連線查詢結果 內連線 主表中有而從表中沒有的記錄 2 左外連線 left join 左邊的是主表 右外連線 righ...
SQL 內連線,外連線(左外連線 右外連線)
參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...