我是 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/