其他表基本上我有一个查询,如下所示:加入参考表比基表
SELECT MAIN.response_id AS 'Response Id',
CONCAT(CASE
WHEN MAIN.months = 'Jan - Mar' THEN 'March'
WHEN MAIN.months = 'Apr - Jun' THEN 'June'
WHEN MAIN.months = 'Jul - Sep' THEN 'September'
WHEN MAIN.months = 'Oct - Dec' THEN 'December'
ELSE 'Error'
END, ' ', MAIN.Year) AS Period,
CNT.country_name AS Country, INITM.num_modules AS 'Initial Training - Number of Modules', INITTRAINED.num_instr AS 'Initial Training - Instructors Trained', INITPASS.pass_num AS 'Initial Training - Instructors Passed', INITPASS.pass_num/INITTRAINED.num_instr AS 'Initial Training - Pass Percentage'
FROM responses_main AS MAIN -- Main responses table
LEFT OUTER JOIN responses_init_training_modules AS INITM USING (response_id) -- Main INIT training table
LEFT OUTER JOIN responses_init_training_pass_num AS INITPASS USING (response_id) -- Main INIT training table
LEFT OUTER JOIN responses_init_training_instr_trained AS INITTRAINED USING (response_id) -- Main INIT training table
LEFT OUTER JOIN country AS CNT ON MAIN.country_id = CNT.country_id -- Country table
GROUP BY MAIN.response_id, MAIN.months + ' ' + MAIN.Year, CNT.country_name
什么从该查询缺少的是一个连接到节目表。每个引用表(INITM,INITPASS和INITTRAINED)都有一个引用程序表的program_id,但是基表(MAIN)与程序表无关。当前查询的结果是只返回第一个数据的表格program_id +不显示任何程序信息。
如何获取显示MAIN.response_id,PROG.program_id,INITM.num_modules,INITPASS.pass_num和INITTRAINED.instr_trained的数据集?我无法弄清楚如何使用3个引用表中的数据来获取一个引用这两个维度(MAIN和PROG)的表格。
我画了什么,我想在这里实现:
任何帮助深表感谢。
不要画出来。平方米。 – Strawberry
你写过3个表中有program_id作为外键。这3个表中的哪一个应引用程序表? – Shadow
@shadow其respond_init_training_modules,respond_init_training_pass_num和respond_init_training_instr_trained表。 respond_main表没有program_id列。 –