我有两张桌子,第一张是朋友,第二张是发帖

Posted

技术标签:

【中文标题】我有两张桌子,第一张是朋友,第二张是发帖【英文标题】:I am having 2 tables, 1st is friends and 2nd is post 【发布时间】:2016-12-21 07:53:16 【问题描述】:

请找出我用来做墙的所有桌子。

    我想查看此人是否在我的好友列表中。 如果他在我的朋友列表中,则显示与该朋友相关的帖子。

候选人表

如果不存在`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, 主键(`id`) ) 引擎=InnoDB 默认字符集=latin1 AUTO_INCREMENT=5 ;

朋友

如果不存在“朋友”,则创建表( `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, 主键(`id`) ) 引擎=InnoDB 默认字符集=latin1 AUTO_INCREMENT=3 ;

帖子

如果不存在 `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` 日期不为空, `like` int(200) NOT NULL, 主键(`post_id`) ) 引擎=InnoDB 默认字符集=latin1 AUTO_INCREMENT=11 ;

查看帖子

如果不存在 `post_view` 则创建表( `post_id` 整数(200) ,`post_email` varchar(200) ,`post` varchar(2000) ,`post_image` varchar(500) ,`id` int(200) ,`名称` varchar(200) ,`email` varchar(200) ,`名称` varchar(200) ,`pic` varchar(200) );

【问题讨论】:

我看不到任何尝试过的查询。有什么错误还是什么?使用INNER JOIN 即可。 【参考方案1】:

问题 1 回答:- select * from Candidate where id in(selectfriend_id from friends where cand_id=2) or id in (select cand_id from friends wherefriend_id=2)

在这里,我假设 cand_id 列是向其他候选人发送请求,所以 'friend_id' 列最终是作为朋友 ID 的候选人 ID。 这个子查询首先检查 cand_id 并选择friend_id 到外部查询结果。 或条件检查到friend_id比较并选择cand_id到外部查询结果。

例子。 你有一个候选人。你的候选人 ID 是 1。 其他候选人 id 为 2。 我也是候选人,所以我的候选人 ID 是 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 (select id from Candidate where id in(selectfriend_id from friends where cand_id=3) or id in (select cand_id from friends wherefriend_id=3))

        here, only display to my friends list post

【讨论】:

【参考方案2】:

第一个问题的查询可能类似于: SELECT * FROM 候选人 c, 朋友 f WHERE c.name = f.name; 这基本上收集了朋友表中也存在的所有候选名称。您可以使用 AND 对第三个表进行扩展。

但是,这是非常基本的 SQL 查询,您应该可以使用一些 google 找到它。

或使用我下方的答案,在我输入此答案时发布。

【讨论】:

以上是关于我有两张桌子,第一张是朋友,第二张是发帖的主要内容,如果未能解决你的问题,请参考以下文章

将两张照片合二为一[重复]

在另一个 UIImage 之上添加 UIImage

在 OpenCV 中对齐两个图像

在 Flutter 中将图像超链接到 URL

Fragment的生命周期

python - bilibili抓包数据乱码