已有的資料庫字段和資料
主表字段和資料: a表
aid | name | creator |
---|---|---|
1 | 測試一 | 張三 |
2 | 測試二 | 李四 |
3 | 測試三 | 王五 |
關聯表的字段和資料: b表
bid | aid | deptname |
---|---|---|
1 | 1 | 國土局 |
2 | 2 | 水利局 |
3 | 3 | 經信局 |
4 | 1 | 規劃節點一 |
5 | 1 | 規劃節點二 |
6 | 2 | 規劃節點一 |
7 | 2 | 規劃節點二 |
8 | 2 | 規劃節點三 |
問題描述
1.查詢主表有哪些資料國土環節已辦結,哪些資料在國土環節未辦結?
2.查詢主表有哪些資料規劃環節已辦結(隻有當規劃節點一二三都完成後才算辦結),哪些資料在規劃環節未辦結?
sql語句
sql拆分 一步步來
1.首先查詢關聯表
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4gDNyMjMxQTMxEzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
模糊查詢、根據aid分組、再根據count過濾
2.關聯查詢
查詢已辦結:
SELECT
distinct a.aid,
a.name,
a.creator
FROM
a a ,b b
where a.aid in (select aid from b where deptname = '國土局' )
查詢結果
aid | name | creator |
---|---|---|
1 | 測試一 | 張三 |
SELECT
distinct a.aid,
a.name,
a.creator
FROM
a a ,b b
where a.aid in
(select aid from b where deptname LIKE '%規劃環節%' group by aid HAVING COUNT(0) >=3 )
查詢結果
aid | name | creator |
---|---|---|
2 | 測試二 | 李四 |
未辦結 則是 not in