sql多個連接
㈠ sql 怎麼通過多個條件連接2張表
實現的方法和詳細的操作步驟如下:
1、第一步,構建兩個表,然後分別插入數據,如下圖所示,然後進入下一步。
㈡ sql連接運算語句( 連接多個欄位)
select a.*,b.* from 火車票 as a inner join 線路 as b
on a.車次=b.車次 and a.線路編號=b.線路編號
㈢ SQL常用的幾種連接(JOIN)小結
連接運算是8種關系運算中的一種。
五種JOIN方式:
1.INNER JOIN or JOIN2.OUTER JOIN
2.1LEFT OUTER JOIN or LEFT JOIN
2.2RIGHT OUTER JOIN or RIGHT JOIN
2.3FULL OUTER JOIN or FULL JOIN3.NATURAL JOIN4.CROSS JOIN5.SELF JOINPS:JOIN中的簡寫為語法糖,實際中寫出來方便讀一點而已12345678910
兩種連接條件:
1.Equi JOIN 1.1NATURAL 1.2USING(a,b) 1.3= ...2.Theta JOIN 2.1>= 2.2<= 2.3> ...PS:USING(...)指定需要哪些列相等。ON則可以指定任意的連接條件(=,>=,<=,!=,>,<...)123456789101112
JOIN or INNER JOIN
返回兩個表中同時滿足條件的元組對,不滿足的將被丟棄。
OUTER JOIN
LEFT OUTER JOIN
返回左表所有行以及右表滿足條件的行,左表有值右表無值填充為null
RIGHT OUTER JOIN
返回右表所有行以及左表滿足條件的行,右表有值左表無值填充為null
FULL OUTER JOIN
返回所有表的所有行,在滿足條件的行之外,左表滿足右表不滿足或者相反,均填充null
NATURAL JOIN
1、來自兩個關系的元組對在共同屬性上的值相同。(不限於一個共同屬性,也可以是多個共同屬性)
2、去掉重復的屬性(列)。
3、列出屬性的順序:先是共同屬性,然後是第一個關系的屬性,最後是第二個關系的屬性。
為了防止兩個表有多個共同屬性時natural join 會忽略部分需要的元組對,應使用join…using(…),以指定需要哪些列相等
join…using(…)連接只能局限在指定的屬性上
CROSS JOIN
返回笛卡兒積
SELF JOIN
相當於A JOIN A
最後放一張圖:
㈣ sql 多表查詢 內連接左連接右連接
2)左連接
select a. ,b. from a left join b on a.id=b.parent_id
結果是
1 張3 1 23 1
2 李四 2 34 2
3 王武 null null null
3) 右連接
select a. ,b. from a right join b on a.id=b.parent_id
結果是
1 張3 1 23 1
2 李四 2 34 2
null null 3 34 4