代码点火器查询生成器无法正常工作


有人能解释一下这些代码之间的区别吗?因为查询生成器没有给出正确的结果,但另一个查询给出了正确的结果。

我看不见有什么不同?

$this->db->select('m.*,c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');
$this->db->where('c.LANG', 'EN');

提供正确结果的查询

SELECT m.*,c.COUNTRY_NAME FROM members m LEFT JOIN country c ON c.COUNTRY_ALPHA2_CODE = m.location WHERE c.LANG = "EN"; 

要生成带有CI的完整查询字符串,需要添加以下行:

$query=$db->get();

完整的代码看起来像:

$this->db->select('m.*,c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');
$this->db->where('c.LANG', 'EN');
$query=$db->get();

在这一行之后,您可以使用检查SQL字符串输出

echo $this->db->query();

从这里开始,您可以继续为您的视图生成查询结果

对评论的回应:

'$this->db->where('c.LANG', 'EN');'不起作用。该行返回数据库中始终使用第一语言

您需要将语言查询放入join:

$this->db->select('m.*,c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','(c.COUNTRY_ALPHA2_CODE = m.location AND c.LANG='EN')', 'left');
$query=$db->get();

试试这个:

$this->db->select('m.*');
$this->db->select('c.COUNTRY_NAME');
$this->db->from('members m');
$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');
$this->db->where('c.LANG', 'EN');

相关内容

  • 没有找到相关文章

最新更新