gpt4 book ai didi

mysql - 基于第三个表计算 2 个表的结果

转载 作者:行者123 更新时间:2023-11-29 07:19:16 25 4
gpt4 key购买 nike

我正在尝试计算每个公司的问题和答案的数量,但我想在单个查询中计算它们。

所以问题是这样的:表 pitanje(问题)与 tvrtka(公司)相关联pitanje.tvrtka_id=tvrtka.tvrtka_id 表答案 (odgovor) 与问题表链接 odgovor.pitanje_id = pitanje.pitanje_id

我试过类似的东西,但得到了一些错误的结果(我为了测试分别计算了问题和答案)。

SELECT tvrtka.naziv,
(SELECT COUNT(*) FROM pitanje WHERE tvrtka.tvrtka_id = pitanje.tvrtka_id) AS brojPitanja,
(SELECT COUNT(*) FROM odgovor WHERE odgovor.pitanje_id = pitanje.pitanje_id) AS brojOdgovora
FROM tvrtka
ORDER BY tvrtka.tvrtka_id

但我现在得到的只是一些 MySQL 错误(未知列,不是唯一别名等),甚至无法得到错误的结果。

如果有人能给我解释一下上面代码的概念。很多答案都是这样写的,但我不知道如何在我的例子中做到这一点。

最佳答案

如果是英文名字,应该是这样的:

SELECT 
c.name,
COUNT(DISTINCT q.question_id) as numQuestions,
COUNT(a.answer_id) as numAnswers
FROM company c
LEFT JOIN questions q ON q.company_id = c.company_id
LEFT JOIN answers a ON a.question_id = q.question_id
GROUP BY c.name

我交给你了,将表名和列名翻译回你的模式。

What is wrong with my code?

这里:

(SELECT COUNT(*) FROM pitanje WHERE tvrtka.tvrtka_id = pitanje.tvrtka_id) AS brojPitanja,
(SELECT COUNT(*) FROM odgovor WHERE odgovor.pitanje_id = pitanje.pitanje_id) AS brojOdgovora

在您使用 WHERE odgovor.pitanje_id = pitanje.pitanje_id 的第二个子查询中,您正试图从另一个子查询中引用一个表 (pitanje)。这不可能。只能在外层查询的FROM子句中引用一个表,即tvrtka

关于mysql - 基于第三个表计算 2 个表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168842/

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