2019-02-14
閱讀量:
731
SQL查詢語句
問題描述:
創(chuàng)建電池表
CREATE?TABLE?battery?(
????id?INTEGER?AUTO_INCREMENT?PRIMARY?KEY,
????name?VARCHAR(64)
);
插入電池?cái)?shù)據(jù)
INSERT mysql.`battery`(`name`) VALUES('Battery1'),('Battery2'),('Battery3'),('Battery4'),('Battery5');
結(jié)果如下

插入日志表
CREATE TABLE record (
id INTEGER ,
charge INTEGER
);
結(jié)果如下

日志表數(shù)據(jù)表示電池1分別被充電2小時(shí)、3小時(shí)、1.5小時(shí),電池2分別被充電10小時(shí)、3小時(shí)
沒有充電記錄,或沒有被一次性充電超過8小時(shí)的電池都是有問題的電池(可知只有電池2是沒有問題的)
使用一個(gè)左外連接找出沒有日志的電池
SELECT * FROM mysql.battery b LEFT JOIN mysql.record r ON b.`id` = r.`id`;
結(jié)果如下

可以看出Battery3、Battery4、Battery5沒有充電記錄所以是有問題的,但Battery1沒有一次充電超過8小時(shí)
解決方法:
select * from battery as b
left join (
select id, sum(charge) as sc from record group by id
) as rj on b.id=rj.id
where rj.sc<8 or rj.id is null;






評(píng)論(0)


暫無數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
1條評(píng)論