你好,我试图通过加入2视图来创建一个新的视图。我有一个充满一个问题id和正确答案的数目的观点。然后另一个有错误答案的数字。我想让它合并,所以它只是question_id,correct_answer,wrong_answer。我使用MySQL工作台进行查询。
这是生成正确答案视图的查询。
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;这是用于生成错误答案视图的查询。
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;这是我用来连接他们两个的查询。
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仍然是联接的新内容,所以我可能一开始就编写了错误的语法。谢谢
编辑:这两个答案都解决了,谢谢你,我做了所有的推理,如果我需要使用正确或错误的数据,我可以只使用视图,而不是完全选择。因为在将来,我将把这个视图与另一个表中的数据结合起来。
发布于 2022-06-01 07:45:48
你的数据
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等效
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;发布于 2022-06-01 07:40:31
试试这个:
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;https://stackoverflow.com/questions/72457682
复制相似问题