看了別人的答案發現,可以簡略寫表名感覺簡介了不少
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,而十...