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

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

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

可以看出Battery3、Battery4、Battery5沒有充電記錄所以是有問題的,但Battery1沒有一次充電超過8小時
解決方法:
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;






評論(0)


暫無數據
推薦帖子
0條評論
0條評論
0條評論