gpt4 book ai didi

php - 如何在 PHP 中创建子查询?

转载 作者:行者123 更新时间:2023-11-29 21:54:04 25 4
gpt4 key购买 nike

所以我正在一个现有的系统上工作,我试图弄清楚他们是如何设置 mysql 的。他们有这样的查询设置

    $this->db->select('nID, nAID');
$this->db->where('bValid', 1);
$this->db->where('nID', (int)$nID);
$this->db->from('event');
$this->db->group_by('nID, nAID');

$query = $this->db->get();

这个查询效果很好,但是我需要设置一个子查询。我已经用 SQL 编写了查询并对其进行了测试以确认它有效,但我无法弄清楚如何翻译它。基本上我需要的是从“事件”表中抓取,我需要从之前所做的子选择中抓取。我想象它会怎样。

    $this->db->select('nID, nAID');
$this->db->where('bValid', 1);
$this->db->where('nID', (int)$nID);
$this->db->from(
$this->db->select('something, somethingelse');
$this->db->where('something', 1);
$this->db->get();
);
$this->db->group_by('nID, nAID');

$query = $this->db->get();

最佳答案

第1步:将此代码放入DB_active_rec.php

 // --------------------------------------------------------------------
/**
* Get SELECT query string
*
* Compiles a SELECT query string and returns the sql.
*
* @param string the table name to select from (optional)
* @param bool TRUE: resets QB values; FALSE: leave QB vaules alone
* @return string
*/
public function get_compiled_select($table = '', $reset = TRUE)
{
if ($table !== '')
{
$this->_track_aliases($table);
$this->from($table);
}

$select = $this->_compile_select();

if ($reset === TRUE)
{
$this->_reset_select();
}

return $select;
}

第 2 步:试试这个

//Subquery
$this->db->select('something, somethingelse');
$this->db->where('something', 1);
$this->db->from('first_table');
$sub_query = $this->db->get_compiled_select();


$this->db->select('nID, nAID');
$this->db->where('bValid', 1);
$this->db->where('nID', (int)$nID);
$this->db->from("($sub_query) as tbl1");
$this->db->group_by('nID, nAID');

$query = $this->db->get();

告诉我它是否有效。

关于php - 如何在 PHP 中创建子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33351603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com