gpt4 book ai didi

php - 为在 symfony 中使用的表构建一个带有连接的 mysql 查询

转载 作者:行者123 更新时间:2023-11-29 01:41:15 24 4
gpt4 key购买 nike

数据库结构:

DB Struct

数据库描述

一个公司可以有评论(0,1 或更多)评论总是有reviews_item所有 reviews_item 都有一个类别

问题

我需要使用 reviews_items.value 的 AVG 值生成“公司”列表的 SQL 查询,我需要它按此值设置顺序。即使对于某些“公司”我没有任何“评论”和“reviews_items”公司也应该在 AVG == 0 的列表中。它应该只选择 active == 1 和(如果存在)review active==1 的公司

我的 slq 查询,不能正常工作:

SELECT 
c.name,c.logo,c.url,
AVG(ri.value) as avarage
FROM company c
LEFT JOIN reviews r ON r.company_id = c.id
LEFT JOIN reviews_items ri ON ri.review_id = r.id
LEFT JOIN category cat ON ri.category_id = cat.id
WHERE c.active = 1
GROUP BY c.id

我希望我的问题很清楚:)

附言。对不起,如果我的语言(英语)不太好:D

最佳答案

首先,由于您没有选择、聚合或检查类别表中的任何内容,因此您可以省略 JOIN to table category。

之后您应该修改 GROUP BY 子句。按您选择的所有内容分组,这不是聚合:c.name、c.logo、c.url 假设它们对于属于一个 ID 的所有记录始终相同。

相反,您也可以像这样聚合字段

SELECT
MIN(c.name), MIN(c.logo), MIN(c.URL)
...

并保持 GROUP BY 不变。

关于php - 为在 symfony 中使用的表构建一个带有连接的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113718/

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