如何在查询中有查询的情况下返回结果

时间:2017-09-28 07:31:05

标签: php mysql

我在查询中写了一个查询,我想在fname(这是table1的字段)不等于name(这是table2的字段)时返回结果。但是当我编译这个查询时,我得到致命的错误。请检查下面的代码行。并建议我在哪里错。

table1:等于ult_camp

table2:等于ult_coach

. 
`-- p1
    |-- __init__.py
    `-- p1.py

请帮我解决这个问题。非常感谢。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的第一个WHERE函数调用正在使用原始SQL,因此您目前无法使用它。您可以尝试使用whereRaw代替:

->whereRaw("org_fname NOT IN (SELECT name FROM ult_coach)")
->where('ult_camp.status', 'Active')
...

但您也可以将查询短语作为ult_coach表的左连接:

$rs = $this->db->select('ult_camp.*,ult_country.name as country_name,ult_state.name as state_name')
                ->join('ult_country', 'ult_country.id = ult_camp.country_id')
                ->join('ult_state', 'ult_state.id = ult_camp.state_id ')
                ->leftJoin('ult_coach', 'ult_camp.org_fname = ult_coach.name')
                ->from('ult_camp')
                ->whereNull('ult_coach.name')
                ->where('ult_camp.status', 'Active')
                ->where('ult_state.status', 'Active')
                ->where('ult_country.status', 'Active')
                ->get()->result();