sql練習 day 3 join了解

2021-09-29 05:53:26 字數 1699 閱讀 3958

看了別人的答案發現,可以簡略寫表名感覺簡介了不少

select s.*,d.dept_no 

from salaries as s join dept_manager as d

on s.emp_no=d.emp_no

where s.to_date='9999-01-01' and d.to_date='9999-01-01'

這裡有乙個兩個表的邏輯關係,題目要求是領導的當前薪水情況以及部門編號.這裡需要要求salaries是主表-----為什麼呢:

salaries的from_date是當前薪水的開始時間,dept_manager的from_date是作為部門經理的開始時間。當上部門經理之後可能還會有好幾次加薪。所以兩個表的from_date不一樣

還有為什麼要兩個表的to_date都限制到9999-01-01:

因為薪水表是按年發的,而題目要查詢的是當前的薪水,所以要過濾掉以前,而dept_manager是因為有領導會離職,to_date時間不一定是9999-01-01,所以要過濾掉離職的領導

下面了解一下join語句:

join 用來根據兩個或多個表中的列之間的關係,從這些表中查詢資料

下面演示所用的兩個表

user表

work表

注釋:inner join與join是相同的

left join返回左表的全部行和右表滿足on條件的行,如果左表的行在右表中沒有匹配,那麼這一行右表中對應資料用null代替。

3.right join 跟left相反

right join返回右表的全部行和左表滿足on條件的行,如果右表的行在左表中沒有匹配,那麼這一行左表中對應資料用null代替。

注釋:left join 和right join 在某些資料庫裡 left outer join , right outer join

sql語句<> 和 != 符號都代表不等於

sql上機練習3

use myschool 查詢學生姓名 所屬年級名稱及聯絡 select s.studentname as 姓名,g.gradename as 年級,s.phone as from student as s inner join grade as g on s.gradeid g.gradeid s...

SQL學習筆記3 JOIN連線

join 通過引用兩個或者兩個以上的表,從而獲取資料。實際應用過程中應盡量使用小表join大表,join查詢時應注意的點 只支援等值連線 select a.from a join b on a.id b.id select a.from a join b on a.id b.id and a.dep...

藍橋杯練習day3

1.試題 基礎練習 十進位制轉十六進製制 問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十...