select
e.empname,
d.`deptname`
from
emp e,
dept d
where e.`deptno` = d.`deptno` ;
select
e.`empname`,
d.`deptname`
from
emp e
inner join dept d
on e.`deptno` = d.`deptno` ;
select
e.`empname`,
d.`deptname`
from
emp e natural
join dept d ;
select
e.`empname`,
d.`deptname`
from
emp e
left outer join dept d
on e.`deptno` = d.`deptno` ;
select
e.`empname`,
d.`deptname`
from
emp e
right outer join dept d
on e.`deptno` = d.`deptno` ;
查詢中有查詢(檢視select關鍵字的個數)
一種為where後作為條件存在,另一種為from後作為表存在(多行多列)
ⅰ.單行單列:select * from 表1 別名1 where 列1 [> < = >= <= != ] (select 列 from 表2 別名2 where 條件)
ⅱ.多行單列:select * from 表1 別名1 where 列1 [in any all ] (select 列 from 表2 別名2 where 條件)
ⅲ.單行多列:select * from 表1 別名1 where (列1 列2) in (select (列1,列2) from 表2 別名2 where 條件)
ⅵ.多行多列:select * from 表1 別名1 ,(select ......) 別名2 where 條件
MySQL之多表查詢
1合併結果集,使用關鍵字union和union all,其區別是union會去掉合併中重複的部分而union all不會去掉重複的列。使用這個關鍵字的要求結果姐的列和型別必須相同。定義兩個表如下所示 a和b,兩個表分別有乙個整型的id和乙個字串的name。1.1使用union all 1.2使用un...
MySQL之多表查詢
準備資料 user info表 create table user info id int 2 primary key,user name varchar 12 unique,password varchar 15 not null,real name varchar 8 not null,age ...
MySQL之多表查詢
現在有兩個表,分別為department表和employee表,他們之間是沒有外來鍵關係的。兩個表分別有以下資料。我們可以通過笛卡爾積得到乙個新的虛擬的表。我們得到這個表之後,就可以用這錶取我們想要的資料。比如拿到技術部門的員工名字 其實鍊錶查詢和笛卡爾積差不多,只是笛卡爾積的鍊錶和查詢放在了一起,...