首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL有一个我想要的双列

SQL有一个我想要的双列
EN

Stack Overflow用户
提问于 2022-06-01 07:11:45
回答 2查看 49关注 0票数 -1

你好,我试图通过加入2视图来创建一个新的视图。我有一个充满一个问题id和正确答案的数目的观点。然后另一个有错误答案的数字。我想让它合并,所以它只是question_id,correct_answer,wrong_answer。我使用MySQL工作台进行查询。

这是生成正确答案视图的查询。

代码语言:javascript
复制
CREATE VIEW v_question_history_correct
    AS
SELECT question_id, COUNT(correctness) AS true_answer FROM skripsi_database_soal.questions_history
        WHERE correctness = 'true'
        GROUP BY question_id;

这是用于生成错误答案视图的查询。

代码语言:javascript
复制
CREATE VIEW v_question_history_false
AS    
SELECT question_id, COUNT(correctness) AS false_answer FROM skripsi_database_soal.questions_history
    WHERE correctness = 'false'
    GROUP BY question_id;

这是我用来连接他们两个的查询。

代码语言:javascript
复制
SELECT * FROM v_question_history_correct JOIN v_question_history_false 
    ON v_question_history_correct.question_id = v_question_history_false.question_id;

这就是我得到的在这里输入图像描述

这是正确答案在这里输入图像描述的内容

这是错误答案在这里输入图像描述的内容

任何帮助都将不胜感激。添加Im仍然是联接的新内容,所以我可能一开始就编写了错误的语法。谢谢

编辑:这两个答案都解决了,谢谢你,我做了所有的推理,如果我需要使用正确或错误的数据,我可以只使用视图,而不是完全选择。因为在将来,我将把这个视图与另一个表中的数据结合起来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-01 07:45:48

你的数据

代码语言:javascript
复制
CREATE TABLE v_question_history_correct(question_id int ,true_answer  int);
insert into v_question_history_correct
(question_id,true_answer) VALUES 
(5,7),
(6,8),
(7,8);

CREATE TABLE v_question_history_false(question_id int ,false_answer   int);
insert into v_question_history_false
(question_id,false_answer ) VALUES 
(2,7),
(1,7),
(6,1),
(7,1);

在mysql中使用full join等效

代码语言:javascript
复制
SELECT VC.question_id,true_answer ,false_answer 
FROM v_question_history_correct VC
LEFT JOIN v_question_history_false  VF
    ON VC.question_id = VF.question_id;
UNION
SELECT VF.question_id,true_answer ,false_answer 
FROM v_question_history_correct VC
RIGHT JOIN v_question_history_false  VF
    ON VC.question_id = VF.question_id;

[医]小提琴

票数 0
EN

Stack Overflow用户

发布于 2022-06-01 07:40:31

试试这个:

代码语言:javascript
复制
    SELECT coalesce(v_question_history_correct.question_id,f.question_id,v_question_history_false.question_id) 'question_id',true_answer,false_answer 
FROM v_question_history_correct 
    full JOIN v_question_history_false     ON v_question_history_correct.question_id = v_question_history_false.question_id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72457682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档