- 嵌套查詢(xún):一個(gè)查詢(xún)的結(jié)果是另外sql查詢(xún)的條件
如:查詢(xún)stu表中年齡最大的是誰(shuí)泉坐?
mysql> select * from stu where age=(select max(age) from stu);
mysql> select * from stu where age in(select max(age) from stu); --(子查詢(xún)結(jié)果是多條時(shí)使用in查詢(xún))
+----+------+------+-----+----------+
| id | name | age | sex | classid |
+----+------+------+-----+----------+
| 14 | abc | 33 | w | python01 |
+----+------+------+-----+----------+
1 row in set (0.01 sec)
- where關(guān)聯(lián)查詢(xún)
已知:?jiǎn)T工personnel表和部門(mén)department表巴元,其中員工表中的did字段為部門(mén)表id主鍵關(guān)聯(lián)舱痘。
查詢(xún)所有員工信息绢涡,并顯示所屬部門(mén)名稱(chēng)
要求:顯示字段:?jiǎn)T工id 部門(mén) 姓名
mysql> select p.id,d.name,p.name from personnel p,department d where p.did = d.id;
+----+-----------+-----------+
| id | name | name |
+----+-----------+-----------+
| 2 | 人事部 | 李玉剛 |
| 10 | 人事部 | 阿杜 |
| 4 | 市場(chǎng)部 | 劉歡 |
......
- 連接join查詢(xún)
左聯(lián):left join
右聯(lián):right join
內(nèi)聯(lián):inner join
已知如下表所示,商品類(lèi)別信息表(具有兩層類(lèi)別關(guān)系烘挫,通過(guò)pid表示晴圾,0表示一級(jí)類(lèi)別)
mysql> select * from type;
+----+-----------+------+
| id | name | pid |
+----+-----------+------+
| 1 | 服裝 | 0 |
| 2 | 數(shù)碼 | 0 |
| 3 | 男裝 | 1 |
| 4 | 手機(jī) | 2 |
| 5 | 相機(jī) | 2 |
| 6 | 電腦 | 2 |
| 7 | 女裝 | 1 |
| 8 | 童裝 | 1 |
| 9 | 食品 | 0 |
| 10 | 零食 | 9 |
| 11 | 特產(chǎn) | 9 |
| 12 | 休閑裝 | 1 |
+----+-----------+------+
12 rows in set (0.00 sec)
mysql> desc type;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| pid | int(10) unsigned | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
-- 查詢(xún)二級(jí)類(lèi)別信息,并關(guān)聯(lián)出他們的父類(lèi)別名稱(chēng)
mysql> select t1.id,t1.name,t2.name from type t1,type t2 where t1.pid!=0 and t1.pid=t2.id;
+----+-----------+--------+
| id | name | name |
+----+-----------+--------+
| 3 | 男裝 | 服裝 |
| 4 | 手機(jī) | 數(shù)碼 |
| 5 | 相機(jī) | 數(shù)碼 |
| 6 | 電腦 | 數(shù)碼 |
| 7 | 女裝 | 服裝 |
| 8 | 童裝 | 服裝 |
| 10 | 零食 | 食品 |
| 11 | 特產(chǎn) | 食品 |
| 12 | 休閑裝 | 服裝 |
+----+-----------+--------+
9 rows in set (0.01 sec)
--統(tǒng)計(jì)每個(gè)一級(jí)類(lèi)別下都有多少個(gè)子類(lèi)別灶轰。
mysql> select t1.id,t1.name,count(t2.id) from type t1,type t2 where t1.pid=0 and t1.id=t2.pid group by t1.id;
+----+--------+--------------+
| id | name | count(t2.id) |
+----+--------+--------------+
| 1 | 服裝 | 4 |
| 2 | 數(shù)碼 | 3 |
| 9 | 食品 | 2 |
+----+--------+--------------+
3 rows in set (0.00 sec)
MySQL的多表聯(lián)查就講到這里啦轩娶。