基于MYSQL数据库的结果,不是一个,而是几个表的结果
所以这里我需要看到一些来自MYSQL数据库的结果,这些结果不是基于一个数据库,而是基于几个表的结果 表说明:基于MYSQL数据库的结果,不是一个,而是几个表的结果,mysql,count,distinct,Mysql,Count,Distinct,所以这里我需要看到一些来自MYSQL数据库的结果,这些结果不是基于一个数据库,而是基于几个表的结果 表说明: Metaexplanation: Tablename Row1,Row2,Row3....Row(N) Tables: --------------- |table toy | ------------------------------ |toy_id | name | description | ------------------------------ ----
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;
然而,我需要的是查看每个尚未拥有所有者的不同玩具的扩展总数,并且需要对其进行排序,以便我可以看到第一次查询的结果,以及一个列“扩展数”,该列列出了每个标识为没有所有者的玩具的扩展数
我希望能够通过将原始查询与如下语句相结合来添加结果:
Select COUNT(expansion) as "Number of expansions" from toy_expansions
另外,为了让它更难一点,我希望能够在一个查询中执行它,而无需创建额外的表等,也就是说,无需对数据库本身进行任何更改
有什么想法吗?在表
toy_expansions
中id
和expansions
列包含什么内容?哪一个标识了玩具id?对表格做了一个小的澄清现在就有意义了?看@Joe Stefanelli的答案,应该没问题。哈哈,大家正在评论/投票指向我答案的评论,但不是向上投票。在表toy_expansions
中,列id
和expansions
包含什么?哪一个标识了玩具id?对表格做了一个小的澄清现在就有意义了?看@Joe Stefanelli的答案,应该可以了。哈哈,人们对指向我答案的评论进行了评论/向上投票,但没有向上投票……哎呀,我的查询几乎是一样的……哎呀,我的查询几乎是一样的
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