如何在 mysql 中加入 table?

how to make join table in mysql?

我在 mysql 的同一数据库中有两个 table。 'answer' table 和 'return' table。

我想加入两个 table 来创建一个新类型的 table。

我已经多次尝试创建所需的底部连接 table,但都失败了。

答案表

seqAnswer question1 question2 question3
1         3         2         3
2         4         1         2
3         1         3         4

返回表

id seqreturn question1 question2 question3
1  3         2         3         1 (X,O,X)
2  1         2         2         1 (X,O,X)
3  2         4         3         1 (O,X,X)
4  1         3         2         4 (O,O,X)
5  3         1         3         1 (O,O,X)
6  3         1         3         2 (O,O,X)

question3的(OX,OX,OX)实际上并没有插入Returntable.just去问questioin

我想布置特定的连接 table。 我怎样才能加入table?

希望加入 table

Test Number question1 question2 question3 Total
1           1         2         0         2
2           1         0         0         1
3           2         3         1         3

使用 subquery 将获得您需要的内容,并将每个问题的总数相加

select t1.* 
    , iif(q1 >= 1, 1, 0) + iif(q2 >= 1, 1, 0) + iif(q3 >= 1, 1, 0) as Total
from
    (select seqreturn
        , count(question1) as q1
        , count(question2) as q2
        , count(question3) as q3
    from tableA
    group by seqreturn) t1

我了解到您想统计每个问题收到了多少个正确答案。这个可以用conditionl聚合来解决,如下:

select
    a.seqAnswer test_number,
    sum(a.question1 = r.question1) question1,
    sum(a.question2 = r.question2) question2,
    sum(a.question3 = r.question3) question3,
    count(*) total
from AnswerTable a
inner join ReturnTable r on r.seqReturn = a.seqAnswer
group by a.seqAnswer
order by test_number

Demo on DB Fiddle:

test_number | question1 | question2 | question3 | total
----------: | --------: | --------: | --------: | ----:
          1 |         1 |         2 |         0 |     2
          2 |         1 |         0 |         0 |     1
          3 |         2 |         3 |         0 |     3