2019独角兽企业重金招聘Python工程师标准>>>
范围内重复数量查询
根据上表查询 每个手机号都各有多少个重复的设备id
SELECT t.phone_num,COUNT(*) FROM
(select phone_num, device_id,count(id) from d1_login_log group by phone_num,device_id ) as t
GROUP BY t.phone_num;
经过前辈指导,优化了一下上面代码,并且在推荐一本《SQL必知必会》一本书
SELECT phone_num,count(distinct device_id) num from d1_login_log GROUP BY phone_num
-----------下面是子查询相关内容-------------
这里子查询替代了order的作用。当然,实际上没必要这么做,效率低。(子查询当主查询的条件)
SELECT * FROM xxl_event2017 WHERE addtime = (SELECT MAX(addtime) FROM xxl_event2017)
查询数据多于2条的分类,获取该分类的id,再次使用该id查询所有数据。如有命令不清楚可查阅我另外博文有详细介绍。
SELECT typeid,COUNT(*) as num FROM xxl_event2017 GROUP BY typeid HAVING num>2
SELECT typeid FROM (SELECT typeid,COUNT(*) as num FROM xxl_event2017 GROUP BY typeid HAVING num>2) as t
SELECT id,contacts,tel,typeid FROM xxl_event2017 WHERE typeid IN (SELECT typeid FROM (SELECT typeid,COUNT(*) as num FROM xxl_event2017 GROUP BY typeid HAVING num>2) as t)
第一条查询结果:
第二条查询结果:
第三条查询结果:
左连接:注意field部分重叠处需要点名是哪个表的。
SELECT a.itemid,title,content FROM xxl_sell_5 a
LEFT JOIN xxl_sell_data_5 b ON a.itemid = b.itemid WHERE typeid=0
如下图,itemid存在于a,b表中,使用itemid绑定来查询对应的b表的content。右连接同理。
INNER JOIN,内连接。
内连接仅有交集的数据。如itemid在a表有1,2,3,4。b表有3,4,5,6查询时仅会出现3,4的内容。
自行尝试,就不提供例子了。。
觉得有用求给个赞 - -