gpt4 book ai didi

mysql - 基于 MYSQL 数据库的结果,不是一个,而是基于几个表的结果

转载 作者:行者123 更新时间:2023-11-29 00:54:21 25 4
gpt4 key购买 nike

所以我在这里并且需要查看来自 MYSQL 数据库的一些结果,这些结果不是基于一个表,而是基于几个表的结果。

表格说明:

Metaexplanation:

Tablename

Row1,Row2,Row3....Row(N)

Tables:

---------------
|table toy |
------------------------------
|toy_id | name | description |
------------------------------


--------------------
|table owned_toy |
----------------------------
| owner | toy_id |
----------------------------


--------------------
|table toy_expansions |
-------------------------------
| expansion | toy_id |
-------------------------------

我创建了一个查询来识别没有分配所有者的玩具

SELECT DISTINCT * from toy WHERE NOT EXISTS (SELECT * FROM ownedtoy WHERE owned_toy.toy_id = toy.id);

这很有效,我能够识别出没有所有者的东西。

现在为了让事情变得更有趣,我试图找到一种方法来发现我在上面的查询中确定的每个玩具存在多少扩展。

我可以使用以下方法计算玩具的总扩展次数:

Select COUNT(expansion) from toy_expansions;

然而,我需要的是查看每个还没有所有者的 DISTINCT 玩具的扩展总数,并且需要对其进行排序,以便我看到第一个查询的结果与一个列“数字”扩展”,列出了每个被确定为没有所有者的玩具的扩展数量

我希望能够通过将原始查询与如下语句相结合来添加结果:

Select COUNT(expansion) as "Number of expansions" from toy_expansions

另外,为了让它变得更加困难,我希望能够在一个查询中执行它而无需创建额外的表等,即不对数据库本身进行任何更改。

有什么想法吗?

最佳答案

SELECT t.name, COUNT(te.expansion) AS NumberOfExpansions
FROM toy t
LEFT JOIN toy_expansions te
ON t.id = te.toy_id
LEFT JOIN owned_toy ot
ON t.id = ot.toy_id
WHERE ot.toy_id IS NULL
GROUP BY t.name

关于mysql - 基于 MYSQL 数据库的结果,不是一个,而是基于几个表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845140/

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