表一: 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) 能够满足要求 但是涉及到分页觉得这应该不算一种好的方式,希望高手们指教 先谢过了
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建立索引
FROM mini_gallery
WHERE user_id in (select user_id from mini_follow where follow_id = 1)
limit 10,10