gpt4 book ai didi

mysql - 如何在学说中左连接子选择

转载 作者:行者123 更新时间:2023-11-29 18:30:46 25 4
gpt4 key购买 nike

我不想做任何特殊的魔术,只需将我的查询左连接到子查询即可。我尝试了在互联网上找到的许多方法和技巧,但没有一个有效,而且我总是收到无用的错误消息,这些消息告诉我们注意有意义的问题,或者没有必要寻找解决方案。

这是我的子查询和查询:

$subQuery = $qb
->select("DISTINCT TRIM(cp.originalteilenummer) AS productCode")
->from(\Vendor\ShopBundle\Entity\ExternalProduct::class, 'cp')
->getQuery();


$result = self::$entityManager->createQueryBuilder()
->select('c.id,
c.manufacturerId,
cu.fullName,
c.vin,
c.plateNumber,
c.netDiscountPrice,
c.calculationDate,
u.loginName,
c.lastOfferSentAt,
COUNT(DISTINCT i.id) AS items,
c.customerDmsId,
GROUP_CONCAT(cp.productCode) AS productCodes')
->from(\Vendor\ShopBundle\Entity\Calculation::class, 'c')
->innerJoin(\Vendor\ShopBundle\Entity\CalculationItem::class, 'i', 'WITH', 'c.id = i.orderId')
->leftJoin(\Vendor\UserBundle\Entity\User::class, 'u', 'WITH', 'c.openedBy = u.id')
->leftJoin(\Vendor\CoreBundle\Entity\User::class, 'cu', 'WITH', 'c.customerDmsId = cu.user')
->leftJoin(sprintf('(%s)', $subQuery->getSQL()), 'cp', 'WITH', 'i.partNumber = cp.productCode')
->groupBy('c.id')
->getQuery()
->getScalarResult();

我只想将查询左连接到子查询的数据集。我怎样才能实现这个目标?

如果我运行这个,我会收到一个错误:

[Semantical Error] line 0, col 773 near '(SELECT DISTINCT': Error: Class '(' is not defined.

最佳答案

使用 QB 和 Doctrine 可能无法实现您想要做的事情。

更好的方法是在WITH IN/NOT IN中使用子查询。但这可能不是您想要的。

来源:

How to create LEFT JOIN with SELECT subquery using QueryBuilder in Doctrine 2?

Doing a WHERE .. IN subquery in Doctrine 2

关于mysql - 如何在学说中左连接子选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45708320/

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