select a.a_name as 名字,count(b.a_id) as 數(shù)量 from a inner join b on a.a_id = b.a_id group by a.a_name
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南召,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
名字 數(shù)量
me 3
wo 1
he 1
select a.a_name as 名字,count(b.a_id) as 數(shù)量 from a left join b on a.a_id = b.a_id group by a.a_name
名字 數(shù)量
me 3
wo 1
he 1
she 0
our 0
使用 case when ..then else end 語句進行顯示
多列數(shù)據(jù)展示都是使用case end
學(xué)會使用case end可以展示多列報表
自己試試吧
不會,不過有些思路
提取你要輸入的A的值,判斷 select count(*) from TABLE where A=你輸入的值。
case1:如果查到的值是0,則B為1;
case2:如果查到的值不是0,查詢 select max(B)+1 from TABLE where A=你輸入的值 ,并將查詢到的值和A要輸入的值一起插入;
如果只是用數(shù)據(jù)庫實現(xiàn)的話帶參數(shù)的存儲結(jié)構(gòu)應(yīng)該能實現(xiàn)你這個要求,編程的話就更簡單了
拿oracle來說,sql的執(zhí)行計劃就不一樣,也就是說執(zhí)行sql要花費的時間不一樣。
子查詢: select st_name from student s where exists (select 1 from course where course_name='database' and st_id=s.st_id)
聯(lián)合查詢: select st_name from student s, course c where s.st_id=c.st_id
后者的執(zhí)行速度會快一些。因為如果在student表的st_id字段有主鍵的話,前者不使用索引查詢,而后者使用索引,你可以到數(shù)據(jù)庫里試驗一下。