mysql兩表聯查和內聯 MySQL的多表聯查

2021-10-17 21:46:00 字數 2091 閱讀 8200

如:查詢stu表中年齡最大的是誰?

mysql> select * from stu where age=(select max(age) from stu);

mysql> select * from stu where age in(select max(age) from stu); --(子查詢結果是多條時使用in查詢)

| id | name | age | *** | classid |

| 14 | abc | 33 | w | python01 |

1 row in set (0.01 sec)where關聯查詢

已知:員工personnel表和部門department表,其中員工表中的did欄位為部門表id主鍵關聯。

查詢所有員工資訊,並顯示所屬部門名稱

要求:顯示字段:員工id 部門 姓名

mysql> select p.id,d.name,p.name from personnel p,department d where p.did = d.id;

| id | name | name |

| 2 | 人事部 | 李玉剛 |

| 10 | 人事部 | 阿杜 |

| 4 | 市場部 | 劉歡 |

......連線join查詢

左聯:left join

右聯:right join

內聯:inner join

已知如下表所示,商品類別資訊表(具有兩層類別關係,通過pid表示,0表示一級類別)

mysql> select * from type;

| id | name | pid |

| 1 | 服裝 | 0 |

| 2 | 數碼 | 0 |

| 3 | ** | 1 |

| 4 | 手機 | 2 |

| 5 | 相機 | 2 |

| 6 | 電腦 | 2 |

| 7 | ** | 1 |

| 8 | 童裝 | 1 |

| 9 | 食品 | 0 |

| 10 | 零食 | 9 |

| 11 | 特產 | 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)

-- 查詢二級類別資訊,並關聯出他們的父類別名稱

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 | 手機 | 數碼 |

| 5 | 相機 | 數碼 |

| 6 | 電腦 | 數碼 |

| 7 | ** | 服裝 |

| 8 | 童裝 | 服裝 |

| 10 | 零食 | 食品 |

| 11 | 特產 | 食品 |

| 12 | 休閒裝 | 服裝 |

9 rows in set (0.01 sec)

--統計每個一級類別下都有多少個子類別。

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 | 數碼 | 3 |

| 9 | 食品 | 2 |

3 rows in set (0.00 sec)

mysql的多表聯查就講到這裡啦。

兩個MYSQL表關聯查詢

高階sql語句inner join 非常實用 在接觸這個語句之前 我要到資料庫查詢不同表的 內容我一般需要執行2次sql語句 迴圈2次。而現在有了這個語句 可以簡化成只執行1次語句 迴圈一次 result mysql query select states.state id,states.state...

兩個MYSQL表關聯查詢

高階sql語句inner join 非常實用 在接觸這個語句之前 我要到資料庫查詢不同表的 內容我一般需要執行2次sql語句 迴圈2次。而現在有了這個語句 可以簡化成只執行1次語句 迴圈一次 result mysql query select states.state id,states.state...

兩表多屬性聯查

一方表 jsonignoreproperties value public class cityentity implements serializable 獲取 城市id public long getid 設定 城市名 public void setcityname string citynam...