如何在 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
test_number | question1 | question2 | question3 | total
----------: | --------: | --------: | --------: | ----:
1 | 1 | 2 | 0 | 2
2 | 1 | 0 | 0 | 1
3 | 2 | 3 | 0 | 3
我在 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
test_number | question1 | question2 | question3 | total ----------: | --------: | --------: | --------: | ----: 1 | 1 | 2 | 0 | 2 2 | 1 | 0 | 0 | 1 3 | 2 | 3 | 0 | 3