无法理解我在做什么错我的SQL加入

无法理解我在做什么错我的SQL加入

问题描述:

我最近一直在努力加强我的查询技能,并做到这一点,我决定做一个简单的twitter克隆。我有两张我正在尝试加入的桌子。无法理解我在做什么错我的SQL加入

用户表
USER_ID Pimary关键
用户名
电子邮件
等...

后续表(以下对于用户)
ID Pimary重点
FK_Follower(外键。 User_ID)UNIQUE
FK_Followie(User_ID的外键)UNIQUE

这里我的逻辑是,每行都必须有一个唯一的对,例如(16,18 | 18,16 | 14,13),并且每当用户请求关注时,如果该行已经存在,我将其删除。这允许布尔类似的功能。

我创建了一个用户的追随者视图(你去给用户页面,点击查看追随者,它显示谁是继他们)

当然,要做到这一点,我知道我需要使用一个连接用户表和跟踪表之间。我使用笨查询建筑,但结构很容易对任何与SQL知识,告诉是怎么回事,所以它看起来像这样

$this->db->select('*'); 
    $this->db->from('follow'); 
    $this->db->where('follow.FK_Followie_ID', $id);// look for all rows where someone follows the user $id value passed to this function 
    $this->db->join('users', 'users.User_ID = follow.FK_Follower_ID' ,'right'); 
    $query = $this->db->get(); 
    return $query->result_array(); 

在我看来,那我在我需要的行数据并显示来电他们,(完成此全球饲料,特定的配置文件饲料,和个别饲料所以我知道这是什么在我看来是逻辑)

使用正确的连接是我可以显示结果,但它们是错误的唯一途径。我很积极,我正在发送与正在使用的配置文件页面相关的正确的$ id值的查询,但我已经尝试了所有在太阳下的连接组合,并且只有它显示结果时,它们肯定是不正确的。

我能完成我想要做的事吗?这可能是我的表结构的问题吗?或者它只是我的查询逻辑?我有一种感觉,我的加入知识存在差距,如果有人会如此善意地启发我,我需要摆脱困境。谢谢。

尝试此

$this->db->select('*'); 
 
    $this->db->from('follow'); 
 
    $this->db->join('users', 'users.User_ID = follow.FK_Follower_ID' ,'right'); 
 
    $this->db->where('follow.FK_Followie_ID', $id); 
 
    $query = $this->db->get(); 
 
    return $query->result_array();

+0

虽然此代码段可以解决的问题,[包括一个解释](http://meta.stackexchange.com/questions/114762/explaining - 完全基于代码的答案)确实有助于提高发布的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – DimaSan

+0

@kundanPicker我曾多次试过这个查询,结果没有。它最终显示了db中每个人都被某个人打了底子的人。 –