<code>SELECT stand.name, if(count(checkins.id)>0,true,false) as pocet_navstev FROM stand left join (select * from checkin where checkin.nickname_id=10) as checkins on (stand.id=checkins.stand_id) GROUP by stand.id;</code>

问题描述 投票:0回答:1

但是运行后我会出现一个错误:

[Semantical Error] line 0, col 80 near 'JOIN (SELECT': Error: Subquery is not supported here

如果我不调用 - > getquery(),但是使用getDql()拉sql,我得到了:

SELECT stand.id, stand.Name, count(checkin.id) FROM App\Entity\Stand stand LEFT JOIN (SELECT checkin.id, checkin.Nickname, checkin.Stand FROM App\Entity\Checkin checkin WHERE checkin.Nickname=10) checkins WITH stand.id=checkins.Stand GROUP BY stand.id

如何请我重写我的PHP代码以使其正常工作?

	

因为它隐含的“为什么?”部分,您的问题与

有关 问题

9086546

34768821

45708320

53867867
php sql symfony doctrine-orm createquery
1个回答
0
投票
或学说问题

#2305
#3542#7116. 本质:您无法在面向对象的DQL中做到这一点(并且需要处理完整的对象,除了可以将其“非正式化”到单个字段的最终结果);要么您必须:
将其用于SQL而不是DQL 使用Connection而不是EntityManager

(如果您希望结果作为对象,请手动保湿) 或找到一种不使用

FROM (SELECT
  1. 的功能等效方法 (提出上述问题的用户可以诉诸
    EXISTS
    IN

  2. 新闻,“我该怎么办?”您的问题的一部分是,在您的特定案例中(您提出),这两个选项都适用:
  3. 您不需要对象,只有标量类型:SQL是可能的
    如果我正确阅读,您可以直接从主查询中直接
    LEFT JOIN
    Checkin
  4. ,将
= 10

添加到联接条件中。

© www.soinside.com 2019 - 2025. All rights reserved.