如何创建查询以从多个列中获取 table

How to create a query to get table from multiple columns

我正在创建一个 table 所有用户,列出他们的用户名和未决问题以及分配的问题总数。

我有 2 table 第一个包含用户名、初始问题编号和最终问题编号列,第二个 table 包含时间戳用户名和提交的问题编号

第一个数据库 table

username first que last que
usera 101 200
userb 201 300
userc 301 400

第二个分贝table

username submitted question number timestamp
usera 103 13-06-2022
usera 102 11-06-2022
userb 201 12-06-2022
usera 101 09-06-2022

所以我想将其输出为用户名、分配的总问题、未决问题

我想要在网页上输出

username total question allotted pending question
usera 99 96
userb 99 98
usera 99 99

未决问题总数必须按以下公式计算(系列问题总数 - 提交问题总数)

您可以使用下一个查询完成此操作:

SELECT 
    first_table.username, 
    (last_que-first_que) total_questions_allotted,
    (last_que-first_que-answers) pending_questions
FROM first_table 
JOIN (
    SELECT username, COUNT(*) answers FROM second_table GROUP BY username
) second_table_groupped USING(username);

或使用下一个 PHP 代码:

<?php
$query = 'SELECT 
    first_table.username, 
    (last_que-first_que) total_questions_allotted,
    (last_que-first_que-answers) pending_questions
FROM first_table 
JOIN (
    SELECT username, COUNT(*) answers FROM second_table GROUP BY username
) second_table_groupped USING(username)';


$result = $mysqli->query($query);
$data = $result->fetch_all(MYSQLI_ASSOC);

print_r($data);

run PHP online