日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue实现查询多条记录_sql:多表查询

發布時間:2024/9/19 vue 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue实现查询多条记录_sql:多表查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1進階9:聯合查詢 關鍵詞union聯合、合并:將多條查詢語句的結果合并成一個結果 語法:查詢語句1 union 查詢語句2 union ... 應用場景:當我們要查詢的結果來自于多個表,且多個表之間沒有連接關系,但是查詢的信息一致 特點:要求多條查詢語句的查詢列數是一致的★ 要求多條查詢語句的每一列的順序和類型是一致的 使用union關鍵字默認是去重的,因此可以使用union all包含所有的信息 引入的案例:查詢course表1和course表2的課程號和課程名稱 select course_id,course_name from course1 union all select course_id,course_name from course2;

2.表的聯接

表的連接類型以A表和B表為例對不同的連接方式進行顯示連接結果

2.1交叉聯結cross join 又稱之為笛卡兒積,即假設表1有m行,表2有n行,交叉連接的結果是m*n行, 在實際中運用較少。 2.2內聯結 inner join 也稱之為等值連接,即查找兩張表中共同存在的數據,即兩張表的交集,韋恩圖如下:

select a.*,b.* from A表 inner join B表 on a.name=b.name; 連接結果:

2.3左聯結 left join (1)左連接是左邊表是主表,匹配右邊的表是從表。主表的所有數據都有顯示出來,右邊的表數據只顯示共同有的那部分,沒有對應的部分只能補空顯示(以null顯示),左邊表就是指放在left join的左邊的表.韋恩圖:

select a.*,b.*from A表 left join B表 on a.name=b.name; 返回結果:

(2)若返回只有左表的記錄,但是并不包括左表和右表所共有的 select a.*,b.* from A表 left join B表 on a.name=b.name where b.id is null; 韋恩圖和返回的結果集如下:

2.4右聯結 right join 右連接正好是和左連接相反的,這里的右邊也是相對right join來說的,在這個右邊的表就是右表 ,即主表,返回結果是右表有,左表顯示共同的部分,沒有的以null顯示。 select a.*,b.*from A表 right join B表 on a.name=b.name; 若返回只有右表的記錄,但是并不包括左表和右表所共有的 select a.*,b.* from A表 left join B表 on a.name=b.name where a.id is null; 韋恩圖

3.5全聯結 full join 由于mysql不支持full join,大多數可以通過union all實現,即左連接+右連接+去重實現練習: #1.查詢所有學生的學號、姓名、選課數、總成績 SELECT a.stu_id,stu_name,COUNT(課程號) AS 選課數,SUM(成績)AS 總成績 FROM student a INNER JOIN score b ON a.stu_id=b.stu_id GROUP BY a.學號; #2.查詢平均成績大于85的所有學生的學號、姓名和平均成績 step1.先查詢平均成績大于85的學生學號 SELECT stu_id,AVG(score) AS ag FROM score WHERE AVG(score)>85 GROUP BY stu_id; step2.再查詢滿足第一步的學生的學號、姓名、平均成績 SELECT a.stu_id,a.stu_name,b.ag FROM srudent a INNER FROM (SELECT stu_id,AVG(score) AS ag FROM score WHERE AVG(score)>85 GROUP BY stu_id)b ON a.stu_id=b.stu_id; 方式2:采用左連接 select a.stu_id,a.stu_name,b.ag from student a left join score bgroup by a.stu_id having b.ag>85;

3.case表達式

case when 條件1 then 要顯示的值1或語句1;when 條件2 then 要顯示的值2或語句2;....else 條件n then 要顯示的值n或語句nend 案例:查詢出每門課程的及格人數和不及格人數 SELECT course_id, SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END)AS 及格人數, SUM(CASE WHEN score<=60 THEN 1 ELSE 0 END)AS 不及格人數 FROM score GROUP BY course_id; #案例2:使用分段函數[100-85],[85-70],[<60]來統計各科成績,分別統計各分數段人數、課程號和課程名稱 SELECT a.course_id,a.course_name, SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS '[100,85]', SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS '[85-70]', SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS '[<60]' FROM score a INNER FROM course b ON a.course_id=b.course_id GROUP BY a.course_id,b.course_name;

練習:

總結

以上是生活随笔為你收集整理的vue实现查询多条记录_sql:多表查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。