各位 这个SQl语句应该如何写会更加高效?
时间:2011-07-01
来源:互联网
表一: tab_follow
DROP TABLE IF EXISTS tab_follow;
CREATE TABLE tab_follow(
user_id mediumint(8) unsigned NOT NULL default '0', -- 用户id号
user_name varchar(15) NOT NULL default '', -- 用户名称
follow_id mediumint(8) unsigned NOT NULL default '0', -- 跟随者id号
follow_name varchar(15) NOT NULL default '', -- 跟随者名称
follow_status tinyint(1) NOT NULL default '0', -- 跟随状态 默认 0表示单向关注 1表示双向关注
dateline int(10) unsigned NOT NULL default '0', -- 跟随日期
PRIMARY KEY (user_id,follow_id),
KEY follow_id (follow_id)
) ENGINE=MyISAM;
表二: tab_gallery
DROP TABLE IF EXISTS tab_gallery;
CREATE TABLE tab_gallery(
gallery_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT, -- 目录的id号
gallery_name varchar(50) NOT NULL DEFAULT '', -- 目录的名称
gallery_desc varchar(255) NOT NULL DEFAULT '', -- 目录描述
gallery_view int(10) NOT NULL DEFAULT '0', -- 被浏览的次数
gallery_like int(10) NOT NULL DEFAULT '0', -- 被标记为喜欢的
gallery_cover varchar(60) NOT NULL default '', -- 目录封面图片
`public_status` tinyint(1) NOT NULL DEFAULT '0', -- 0 --> 分享 1-->隐私
dateline int(10) unsigned NOT NULL DEFAULT '0', -- 创建的时间
user_id mediumint(8) unsigned NOT NULL DEFAULT '0', -- 目录所属的用户的id
user_name varchar(15) NOT NULL DEFAULT '', -- 目录所属用户的昵称
items_num smallint(6) unsigned NOT NULL DEFAULT '0', -- 目录中所拥有的项目数
PRIMARY KEY (gallery_id),
KEY uid (user_id,dateline)
) ENGINE=MyISAM;
查询结果要求是这样:根据指定表一:tab_follow 中的follow_id 所得的user_id去查询表二:tab_gallery 中对应的记录
目前我使用嵌套查询:SELECT * FROM mini_gallery WHERE user_id in (select user_id from mini_follow where follow_id = 1) 能够满足要求 但是涉及到分页觉得这应该不算一种好的方式,希望高手们指教 先谢过了
DROP TABLE IF EXISTS tab_follow;
CREATE TABLE tab_follow(
user_id mediumint(8) unsigned NOT NULL default '0', -- 用户id号
user_name varchar(15) NOT NULL default '', -- 用户名称
follow_id mediumint(8) unsigned NOT NULL default '0', -- 跟随者id号
follow_name varchar(15) NOT NULL default '', -- 跟随者名称
follow_status tinyint(1) NOT NULL default '0', -- 跟随状态 默认 0表示单向关注 1表示双向关注
dateline int(10) unsigned NOT NULL default '0', -- 跟随日期
PRIMARY KEY (user_id,follow_id),
KEY follow_id (follow_id)
) ENGINE=MyISAM;
表二: tab_gallery
DROP TABLE IF EXISTS tab_gallery;
CREATE TABLE tab_gallery(
gallery_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT, -- 目录的id号
gallery_name varchar(50) NOT NULL DEFAULT '', -- 目录的名称
gallery_desc varchar(255) NOT NULL DEFAULT '', -- 目录描述
gallery_view int(10) NOT NULL DEFAULT '0', -- 被浏览的次数
gallery_like int(10) NOT NULL DEFAULT '0', -- 被标记为喜欢的
gallery_cover varchar(60) NOT NULL default '', -- 目录封面图片
`public_status` tinyint(1) NOT NULL DEFAULT '0', -- 0 --> 分享 1-->隐私
dateline int(10) unsigned NOT NULL DEFAULT '0', -- 创建的时间
user_id mediumint(8) unsigned NOT NULL DEFAULT '0', -- 目录所属的用户的id
user_name varchar(15) NOT NULL DEFAULT '', -- 目录所属用户的昵称
items_num smallint(6) unsigned NOT NULL DEFAULT '0', -- 目录中所拥有的项目数
PRIMARY KEY (gallery_id),
KEY uid (user_id,dateline)
) ENGINE=MyISAM;
查询结果要求是这样:根据指定表一:tab_follow 中的follow_id 所得的user_id去查询表二:tab_gallery 中对应的记录
目前我使用嵌套查询:SELECT * FROM mini_gallery WHERE user_id in (select user_id from mini_follow where follow_id = 1) 能够满足要求 但是涉及到分页觉得这应该不算一种好的方式,希望高手们指教 先谢过了
作者: zhangyityd 发布时间: 2011-07-01
SELECT a.* FROM mini_gallery a
inner join mini_follow b on a.user_id=b.user_id
WHERE b.follow_id = 1
在mini_gallery中user_id、
mini_follow中user_id、follow_id建立索引
inner join mini_follow b on a.user_id=b.user_id
WHERE b.follow_id = 1
在mini_gallery中user_id、
mini_follow中user_id、follow_id建立索引
作者: WWWWA 发布时间: 2011-07-01
引用 1 楼 wwwwa 的回复:
SELECT a.* FROM mini_gallery a
inner join mini_follow b on a.user_id=b.user_id
WHERE b.follow_id = 1
在mini_gallery中user_id、
mini_follow中user_id、follow_id建立索引
SELECT a.* FROM mini_gallery a
inner join mini_follow b on a.user_id=b.user_id
WHERE b.follow_id = 1
在mini_gallery中user_id、
mini_follow中user_id、follow_id建立索引
分页:LIMIT offset,limit
作者: obullxl 发布时间: 2011-07-01
SELECT *
FROM mini_gallery
WHERE user_id in (select user_id from mini_follow where follow_id = 1)
limit 10,10
FROM mini_gallery
WHERE user_id in (select user_id from mini_follow where follow_id = 1)
limit 10,10
作者: rucypli 发布时间: 2011-07-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28