当前位置: 首页 > 面试题库 >

如何在两个不同的表上一起添加两个count(*)结果?

潘安邦
2023-03-14
问题内容

我有两个桌子:玩具和游戏。

+--------------------+------------------+
| Field              | Type             |
+--------------------+------------------+
| toy_id             | int(10) unsigned |
| little_kid_id      | int(10) unsigned |
+--------------------+------------------+

+--------------------+------------------+
| Field              | Type             |
+--------------------+------------------+
| game_id            | int(10) unsigned |
| little_kid1        | int(10) unsigned |
| little_kid2        | int(10) unsigned |
| little_kid3        | int(10) unsigned |
+--------------------+------------------+

一个小孩可以有多个玩具。一个小孩可以一次参加多个游戏。

我想要一个查询,该查询将为我提供little_kid涉及的玩具和游戏的总数。

基本上,我想要这两个查询的总和:

从little_kid_id = 900的玩具中选择COUNT(*);
从游戏中选择COUNT(*),其中little_kid1 = 900 
                              或little_kid2 = 900 
                              或little_kid3 = 900;

是否可以在单个SQL查询中获得它?显然,我可以通过编程的方式对它们进行汇总,但这并不是很理想。

(我意识到人为的例子使模式看起来效率低下。让我们假设我们无法更改模式。)


问题答案:

包装它们并使用子查询:

SELECT
(SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900)+
(SELECT COUNT(*) from Games WHERE little_kid1 = 900 
                              OR little_kid2 = 900 
                              OR little_kid3 = 900)
AS SumCount

瞧!



 类似资料:
  • 我可以毫无问题地实现模态抽屉。但是我想在同一个屏幕上添加两个模态抽屉,一个从左边,一个从右边。在xml中很容易做到,但是我不知道如何在Jetpack中做到这一点。

  • 问题内容: 我目前有两个选择命令如下。我想做的是将结果添加到SQL查询中,而不是代码中的变量。 是否可以将两者都放在同一SQL中并输出两个结果的总和? 问题答案: 是的。有可能的 附带说明,必须对表名定界以避免语法错误。分隔符在您使用的RDBMS上有所不同。

  • 问题内容: 我有两个数字。例如: 为什么数字不支持算术运算?无论如何,我将如何在Java中将这两个数字相加?(当然,我是从某个地方获取它们的,我不知道它们是Integer还是float等)。 问题答案: 你不知道数字是整数还是浮点数…使用该类时,编译器也不知道你的数字是整数,浮点数还是其他东西。结果,像+和-这样的基本数学运算符不起作用;计算机将不知道如何处理这些值。 开始编辑 根据讨论,我认为一

  • 问题:给您两个非空链表,表示两个非负整数。数字按相反顺序存储,每个节点包含一个数字。将这两个数字相加,并将其作为链表返回。您可以假设这两个数字不包含任何前导零,除了0本身** 示例:工作测试用例如下:-输入:(2)- 我的解决方案不适用于以下测试用例: 输入: 单链表的定义: 这就是我的解决办法

  • 问题内容: 我有两张表。我试图将下面的两个示例表与表1结合起来,两次引用表2。例如,如果我查看表1:第2组和成员7,则应在表2中查找ID,并提供以下输出: 表1 表2 有什么建议吗?谢谢 问题答案: SELECT Table_1.*, g.Name, m.Name FROM Table_1 INNER JOIN Table_2 AS g ON Table_1.Group=g.ID INNER JO

  • 问题内容: 我想将注册和登录表格都放在同一页面上。 它们都以: 所以,我需要这样的东西: 还有如何在第二个表格繁忙时防止执行第一个表格,反之亦然(用户单击两者) 我的想法是在启动流程时(例如,在流程结束时)创建一个简单变量,因此: 可能有更好的方法。 问题答案: 您可以通过两种不同的动作制作两种形式 还是这样做 然后,您的PHP文件将用作一个switch($ _ POST [‘action’])…