【问题标题】:How to get specific data using inner join in codeigniter?如何在codeigniter中使用内部连接获取特定数据?
【发布时间】:2019-07-12 05:32:13
【问题描述】:

我在 codeigniter 中实现内部连接时卡住了。没有 where 条件它工作正常。但是当我使用 where 条件时,它返回空结果。 请帮我找出问题所在。

 $this->db->select('*');
 $this->db->from('user');
 $this->db->join('issue', 'user.id = issue.uid', 'inner');
 $this->db->where('issue.uid', $id);
 $query = $this->db->get()->result_array();
 return $query;

这是最后的查询

 SELECT * FROM `tbl_user` INNER JOIN `tbl_issue` ON `tbl_user`.`id` = 
`tbl_issue`.`uid` WHERE `tbl_issue`.`uid` = '2'

感谢任何解决方案!

【问题讨论】:

  • 您检查了吗,您的数据库中有与 uid 匹配的记录?
  • 使用以下函数获取原始查询 $this->db->last_query() 并比较看看这是您想要的查询还是其他查询。
  • 是的@UzairKhan,如果我在没有 where 条件的情况下运行查询,它将返回两个表中的所有记录匹配,但我只需要一个
  • 获取@user1309690 提到的原始查询,以检查您的查询是否收到了 $id
  • SELECT * FROM tbl_user INNER JOIN tbl_issue ON tbl_user.id = tbl_issue.uid WHERE tbl_issue.uid = '2' 运行此查询在您的 phpmyadmin 中检查您是否有任何问题或您有匹配的记录。

标签: php mysql codeigniter


【解决方案1】:

在我的模型中::

public function innerjoindata($id)
{
    $this->db->select('*');
    $this->db->from('user');
    $this->db->join('issue', 'user.id = issue.uid', 'inner');
    $this->db->where('issue.uid', $id);
    $query = $this->db->get()->result_array();
    return $query;
}

结果数组 :::

数组 ( [0] => 数组 ( [id] => 1 [用户名] => 演示用户 [爱好] => 阅读 [uid] => 1 [健身房] => 是的 )

[1] => Array
    (
        [id] => 2
        [username] => demouser
        [hobby] => reading
        [uid] => 1
        [gym] => no
    )

)

您的查询是 100% 写入我认为您的数据库没有相关数据这就是产生问题的原因 希望对你有帮助

【讨论】:

  • 我没看懂你的最后一句话!
  • 您的 SQL 查询 100% 正确,请手动检查您的数据库并查看您接受的数据是否存在
【解决方案2】:

根据给定的代码,您提供了正确的查询。请尝试直接从带有 where 条件的第二个表中获取。

SELECT * FROM tbl_issue WHERE tbl_issue.uid = '2'。

【讨论】:

    猜你喜欢
    • 2018-02-14
    • 2010-12-29
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多