mysql - "Secondary"查询

标签 mysql

我是 MySQL 的新手,我在尝试找出如何解决以下问题时遇到了麻烦:

1 - 我有一个表格,其中包含一些人的数据,包括姓名、数字代码和每个人的类别。

假设“JOHN DOE”是其中之一,他的编号是“1111”,类别是“A”; “FOO”是另一个,编号代码为“2222”,类别为“B”;而“BAR”是另一个,编号代码“3333”和类别“A”。

2 - 类别“A”中的每个人都应该填写一张表格,该表格填写了我数据库中的第二个表格。在此表中,对每个答案负责的引用是他/她的编号代码。每个人也可以多次回答表格。

问题是:现在我需要一个表格来显示谁回答了表格,谁没有回答。

PS: 我们称数据库为“data_base”,第一个表为“people”(包含列“name”、“num_code”和“category”),第二个表为“answers”(包含列“num_code”和“answer”)。

有人可以帮我吗?

最佳答案

这可以通过子查询简单地解决:

SELECT 
    `num_code`, 
    `name`, 
    (
        SELECT COUNT(*) 
        FROM `answers` 
        WHERE `num_code` = `people`.`num_code`
    ) AS `AnswerCount`
FROM
    `people`
ORDER BY
    `name`

在 SQL 中有很多方法可以解决这个问题。上述结果格式的优点之一是您将获得每个人的答案数量。因此,如果它是 0,那么您就知道他们没有填写。

关于mysql - "Secondary"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433009/

相关文章:

mysql - MySQL GROUP BY 语句中 List 聚合函数的替代方法

Mysql更新语句耗时太长

mysql - 如何从 mySql 创建和编辑数据库文件 .db?

mysql - 在 Ubuntu 14 上安装 mysql2 gem 失败

php - SELECT 包含特定关键字 PHP 的所有行

php - 从数组保存数据而不提交任何表单php

php - MySQLi mysqli 获取数组关联替换不起作用

MySQL不同版本其他结果

mysql 一对多表与键值数据库列表

php - 如何使用 odbc_exec 执行多个 php 查询