请找到我用于隔离墙的所有表格。
候选人表
CREATE TABLE IF NOT EXISTS `candidate` ( `id` int(200) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, `email` varchar(200) NOT NULL, `designation` varchar(200) NOT NULL, `pic` varchar(200) NOT NULL, `password` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
朋友
CREATE TABLE IF NOT EXISTS `friends` ( `id` int(200) NOT NULL AUTO_INCREMENT, `cand_id` varchar(200) NOT NULL, `request_date` datetime(6) NOT NULL, `friend_id` varchar(200) NOT NULL, `accept_date` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
帖子
CREATE TABLE IF NOT EXISTS `post` ( `post_id` int(200) NOT NULL AUTO_INCREMENT, `cand_id` varchar(200) NOT NULL, `post_email` varchar(200) NOT NULL, `post` varchar(2000) NOT NULL, `post_image` varchar(500) NOT NULL, `post_date` date NOT NULL, `like` int(200) NOT NULL, PRIMARY KEY (`post_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
查看帖子的视图
CREATE TABLE IF NOT EXISTS `post_view` ( `post_id` int(200) ,`post_email` varchar(200) ,`post` varchar(2000) ,`post_image` varchar(500) ,`id` int(200) ,`name` varchar(200) ,`email` varchar(200) ,`designation` varchar(200) ,`pic` varchar(200) );
答案 0 :(得分:0)
问题1 ans: - 从候选人中选择*,其中id为(从朋友中选择friend_id,其中cand_id = 2)或id(从朋友中选择cand_id,其中friend_id = 2)
这里,我假设cand_id列是向其他候选人发送请求,所以' friend_id' column是最终候选id作为朋友id。 此子查询首先检查cand_id并选择friend_id到外部查询结果。 或条件检查到friend_id比较并选择cand_id到外部查询结果。
例子。 你有一个候选人。你的候选人ID是1。 其他候选人ID是2。 我也是候选人,所以我的候选人身份是3
after your have send request to candidate id 2
now table entry is
cand_id=1 friend_id=2
now, candidate 2 send friends request to candidate 3
table entry is
cand_id=2 friend_id=3
now this scenario
candidate 2 =total friends is 2 (candidate 1 & 3 )
问题: - 2 select * from post where cand_id in(从其中id的候选人中选择id(从朋友中选择friend_id,其中cand_id = 3)或id(从朋友中选择cand_id,其中friend_id = 3))
here, only display to my friends list post
答案 1 :(得分:0)
查询第一个问题可能是这样的: SELECT * FROM候选人c,朋友f WHERE c.name = f.name; 这基本上收集了朋友表中也存在的所有候选名称。您可以使用AND扩展第三个表。
然而,这是非常基本的SQL查询,你本应该能够使用谷歌找到它。
或使用我下面的答案,在我输入此答案时发布。