91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL實現多表查詢語句介紹

發布時間:2020-05-28 17:30:40 來源:PHP中文網 閱讀:419 作者:三月 欄目:MySQL數據庫

下面一起來了解下MySQL實現多表查詢語句介紹,相信大家看完肯定會受益匪淺,文字在精不在多,希望MySQL實現多表查詢語句介紹這篇短內容是你想要的。

                                                            

創建表

# 創建表
create table department(id int,name varchar(20));
create table employee1(
id int primary key auto_increment,
name varchar(20),
sex enum('male','female') not null default 'male',
age int,
dep_id int
);
# 插入數據
insert into department values(200,'技術'),(201,'人力資源'),(202,'銷售'),(203,'運營');

insert into employee1(name,sex,age,dep_id) values('egon','male',18,200),('alex','female',48,201),('tom','male',38,201),('yuanhao','female',28,202),('lidawei','male',18,200),('jinkezhou','female',18,204);

# 查看表
mysql> select * from employee1;
+----+-----------+--------+------+--------+
| id | name      | sex    | age  | dep_id |
+----+-----------+--------+------+--------+
|  1 | egon      | male   |   18 |    200 |
|  2 | alex      | female |   48 |    201 |
|  3 | tom       | male   |   38 |    201 |
|  4 | yuanhao   | female |   28 |    202 |
|  5 | lidawei   | male   |   18 |    200 |
|  6 | jinkezhou | female |   18 |    204 |
+----+-----------+--------+------+--------+
6 rows in set (0.00 sec)
mysql> select * from department;
+------+--------------+
| id   | name         |
+------+--------------+
|  200 | 技術       |
|  201 | 人力資源   |
|  202 | 銷售       |
|  203 | 運營       |
+------+--------------+
4 rows in set (0.00 sec)

多表連接查詢

交叉連接

交叉連接:不適用任何匹配條件。生成笛卡爾積

mysql> select * from employee1 ,department;

內連接

內連接:找兩張表共有的部分,相當于利用條件從笛卡爾積結果中篩選出了正確的結果。(只連接匹配的行)

# 找兩張表共有的部分,相當于利用條件從笛卡爾積結果中篩選出了正確的結果
#department沒有204這個部門,因而employee表中關于204這條員工信息沒有匹配出來
mysql> select * from employee1,department where employee1.dep_id=department.id;

#上面用where表示的可以用下面的內連接表示,建議使用下面的那種方法
mysql> select * from employee1 inner join department on employee1.dep_id=department.id;

# 也可以這樣表示哈
mysql> select employee1.id,employee1.name,employee1.age,employee1.sex,department.name from employee1,department where employee1.dep_id=department.id;

左連接left

優先顯示左表全部記錄。

#左鏈接:在按照on的條件取到兩張表共同部分的基礎上,保留左表的記錄
mysql> select * from employee1 left join department on department.id=employee1.dep_id;

mysql> select * from department left join  employee1 on department.id=employee1.dep_id;

右連接right

優先顯示右表全部記錄。

#右鏈接:在按照on的條件取到兩張表共同部分的基礎上,保留右表的記錄
mysql> select * from employee1 right join department on department.id=employee1.dep_id;
mysql> select * from department right join employee1 on department.id=employee1.dep_id;

全部連接join

mysql> select * from department full join employee1;

符合條件多表查詢

示例1:以內連接的方式查詢employee和department表,并且employee表中的age字段值必須大于25,
即找出公司所有部門中年齡大于25歲的員工

mysql> select * from employee1 inner join department on employee1.dep_id=department.id and age>25;

示例2:以內連接的方式查詢employee和department表,并且以age字段的升序方式顯示

mysql> select * from employee1 inner join department on employee1.dep_id=department.id and age>25 and age>25 order by age asc;

子查詢

#1:子查詢是將一個查詢語句嵌套在另一個查詢語句中。
#2:內層查詢語句的查詢結果,可以為外層查詢語句提供查詢條件。
#3:子查詢中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等關鍵字
#4:還可以包含比較運算符:= 、 !=、> 、<等

示例:

# 查詢平均年齡在25歲以上的部門名
mysql> select name from department where id in ( select dep_id from employee1 group by dep_id having avg(age) > 25 );

# 查看技術部員工姓名
mysql> select name from employee1 where dep_id = (select id from department where name='技術');

# 查看小于2人的部門名
mysql> select name from department where id in (select dep_id from employee1 group by dep_id having count(id) < 2) union select name from department where id not in (select distinct dep_id from employee1);
# 提取空部門                              
#有人的部門
mysql> select * from department where id not in (select distinct dep_id from employee1);

看完MySQL實現多表查詢語句介紹這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普陀区| 温泉县| 琼海市| 简阳市| 久治县| 博罗县| 海安县| 吐鲁番市| 肇庆市| 瑞安市| 高陵县| 沅陵县| 黑龙江省| 锦屏县| 阿拉善左旗| 会宁县| 竹山县| 保山市| 台中市| 南城县| 汝州市| 洛隆县| 泾源县| 三都| 通渭县| 承德市| 鄯善县| 商洛市| 黑水县| 黄梅县| 芜湖县| 磴口县| 祥云县| 商城县| 庄河市| 麻栗坡县| 蕲春县| 三都| 建始县| 仁布县| 武义县|