mysql - 數據庫JOIN查詢
問題描述
問題解答
回答1:drop table if exists article;drop table if exists category;drop table if exists r_ac;create table article(id serial not null,title varchar(100),expire timestamp,primary key(id));create table category(id serial not null,name varchar(50),primary key(id));create table r_ac(article int not null,category int not null,primary key(article, category));insert into article(title, expire) values (’a’, ’2017-05-20’),(’b’, null),(’c’, ’2017-03-04’),(’d’, ’2017-02-23’),(’e’, ’2017-04-23’),(’f’, ’2016-09-15’),(’g’, ’2017-06-09’);insert into category(name) values (’c1’),(’c2’),(’c3’),(’c4’),(’c5’),(’c6’),(’c7’);insert into r_ac (article, category) values(1, 1), (1, 2), (1, 5), (1, 7),(2, 1), (2, 6),(3, 5),(4, 1), (4, 4),(7, 1), (7, 7);select category, c.name, count(1) as c from r_ac as acinner join (select id, title, expire from article where expire is null or expire>now()) as z on ac.article=z.idleft join category as c on ac.category=c.idgroup by category, c.name;回答2:
select c.id,count(a.id) from category c LEFT JOIN r_ac r on r.category=c.idLEFT JOIN article a on a.id=r.article and ifnull(a.expire>NOW(),1)GROUP BY c.id
相關文章:
1. html - 移動端radio無法選中2. css - 移動端 line-height安卓錯位,蘋果機正常用,縮放解決了,可是又出來了占位的問題3. javascript - es6模塊加載export的輸出值有點沒太搞明白4. mysql - 這條聯合sql語句哪里錯了5. 關于Navicat連接到mysql,我改了root的密碼后,Navicat連接報錯1862?6. javascript - vue-resource如何終止之前的ajax請求?7. 正則表達式 - python pandas的sep參數問題8. html - IOS二維碼識別問題9. mysql - 數據庫建字段,默認值空和empty string有什么區別 11010. python - 用scrapy-splash爬取網站 為啥iframe下的內容沒有被返回
