-- 一、获取所有帖子
SELECT DISTINCT bbs.tid,
bbs.title AS 标题,
bbs.content AS 内容,
bbs.username AS 作者,
bbs.creattime AS 发布日期,
-- CONCAT(str1,jstr2)函数用于连接两个字符串形成一个字符串
-- -- CONCAT(5,'/',9),显示出来就是:5/9
-- CAST(expr AS type)函数用于将任何类型的值转换为具有指定类型的值
-- CAST(bbs.clickcount AS CHAR),将int类型的点击数 转为 字符型
-- COUNT(bbsrep.tid)函数用于统计该字段的总数量
-- 整体意思:把帖子包中int型的点击数转换为char型;
-- 先统计帖子回复表中tid的数量
-- 再把中int型的帖子id转换为char型
-- 转为字符类型后,两者在中间使用/连接起来
SELECT DISTINCT bbs.tid,
bbs.title AS 标题,
CONCAT(
CAST(bbs.clickcount AS CHAR),
'/',
CAST(COUNT(bbsrep.tid) AS CHAR))
AS 点回
-- 这里显示到html就是带链接的图片
CONCAT('<a href=display.html?id=',
CAST(bbs.tid AS CHAR),
'><img src=''../pic/33.jpg'' width=''20px''/></a>')
AS 查看
FROM bbs
-- 从表 (bbsrep) 那里返回所有的行
-- ON后面是限制条件:只返回回复表中的帖子id=帖子表中的帖子id
-- 意思就是:获取回复表中所有属于该条帖子的回复
LEFT JOIN bbsrep ON bbs.tid=bbsrep.tid
-- GROUP BY会根据帖子表自己的id来排序
GROUP BY bbs.tid
select * from bbs
SELECT DISTINCT
bbs.title AS 标题,
bbs.username AS 作者,
bbs.creattime AS 发布日期,
bbs.class AS 分类,
bbs.content AS 内容
FROM bbs WHERE tid='1'
-- COUNT(bbsrep.tid统计总回复数
SELECT DISTINCT
bbs.title AS 标题,
CONCAT(
CAST(bbs.clickcount AS CHAR),
'/',
CAST(COUNT(bbsrep.tid) AS CHAR))
AS 点回,
CONCAT(
'<a href=display.html?id=',
CAST(bbs.tid AS CHAR),
'><img src="../pic/33.jpg" width="20px"/></a>')
AS 查看
FROM bbs
LEFT JOIN bbsrep ON bbs.tid=bbsrep.tid
GROUP BY bbs.tid
-- 二、获取某个帖子详情sql
-- 从两个三个表中一起获取数据
-- 增加点击数
update bbs set clickcount=clickcount+1 where tid=3;
update history set username='小红红' where username='红红' ;
update history set username='红红' where sessionID='513CFEDC813A3E0BB091F1A0A4C50D93'
-- 获取帖子的回复内容、评论人、头像、时间、点击
SELECT DISTINCT
bbsrep.replycontent,
bbsrep.replyusername,
bbsrep.replytime,
bbsrep.click,
`user`.avatar5
FROM bbsrep
LEFT JOIN `user` ON bbsrep.uid=`user`.uid
WHERE tid=1 AND fid=1
GROUP BY bbsrep.rid
SELECT * FROM bbsrep WHERE tid=1
LEFT JOIN `user` ON bbsrep.uid=`user`.uid
SELECT DISTINCT
bbs.tid,
bbs.title AS 标题,
bbs.author AS 作者,
bbs.pic AS 照片,
bbs.creattime AS 发布日期,
bbs.class AS 分类,
bbs.content AS 内容,
`user`.avatar
FROM bbs
LEFT JOIN `user` ON bbs.uid=`user`.uid
where tid='1'
SELECT title,pic,clickcount,replycount FROM bbs
SELECT avatar FROM `user` WHERE username=520
select tid,uid from collect where tid=1 and uid=1;
DELETE FROM collect WHERE tid=1 and uid=1;
-- 查询该用户的收藏文章
SELECT bbs.tid,title,pic,clickcount,replycount
FROM bbs
LEFT JOIN collect ON bbs.tid=collect.tid
WHERE collect.uid=1
insert into student(sno,sname,born,photo) values(?,?,?,?)
SELECT tid,title,pic,clickcount,replycount FROM bbs
-- UPDATE 表名 SET 字段1=值, 字段2=值 WHERE username=值;
SELECT * FROM history
update history set lefttime='2022-05-11 01:17:16' where sessionID='44F875FF27E78E7EC4DA2FB4C55E4358'
项目中常用高级SQL语句总结
猜你喜欢
转载自blog.csdn.net/weixin_45947938/article/details/125047153
今日推荐
周排行