Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我需要在DQL中进行子选择_Sql_Dql - Fatal编程技术网

Sql 我需要在DQL中进行子选择

Sql 我需要在DQL中进行子选择,sql,dql,Sql,Dql,我有一个疑问: $query = $this->createQueryBuilder('l') ->select('l') ->leftJoin('l.processedLeads', 'pl') ->where('pl.company <> :company') ->andWhere('pl.company IS NULL') ->setParameters(

我有一个疑问:

    $query = $this->createQueryBuilder('l')
        ->select('l')
        ->leftJoin('l.processedLeads', 'pl')
        ->where('pl.company <> :company')
        ->andWhere('pl.company IS NULL')
        ->setParameters(array('company' => $company))
        ->getQuery();
我可以在联接的两个参数(lead_id和company)不存在的联接中进行子选择吗


与中一样,只选择特定公司的processedLeads中不存在的Lead?

我不熟悉QueryBuilder,但我建议在DQL中使用类似的方法:

$query = $em->createQuery('SELECT l FROM Project\model\leads l WHERE l NOT IN
    (SELECT p.lead FROM Project\model\processed_leads p WHERE p.lead = ? AND company = ?)')
    ->setParameters(array($lead, $company))
    ->getResult;

希望这能帮助你。我会在语句中使用
NOT。如果子查询返回空值,则该公司已处理的_lead中没有lead,您将获得所有lead-在这种情况下,这应该是正常的

不在
有点危险。。。如果子查询返回空值,许多程序员会感到惊讶。(这就是为什么我通常做
不存在
的原因。)啊,是的,但我认为SQL查询只是伪查询,我需要类似于DQL的东西
$query = $em->createQuery('SELECT l FROM Project\model\leads l WHERE l NOT IN
    (SELECT p.lead FROM Project\model\processed_leads p WHERE p.lead = ? AND company = ?)')
    ->setParameters(array($lead, $company))
    ->getResult;