我有两个包含列的表格如下:
我想要一个包含以下内容的结果:
codemk, namemk, tm, pr, lp
注意: year
表中的program
,codemk
和khs
字段在subjects
表中也不是唯一的。但是将这些字段的3值组合成一个独特的值。
我试过了:
SELECT khs.id khs.codemk, subjects.namemk, subjects.tm, subject.pr, subjects.lp
FROM khs
RIGHT JOIN subjects
ON khs.year + khs.program +khs.codemk = subjects.year + subjects.program + subjects.codemk;
但tm
,pr
和lp
的结果并非我的预期。我错过了什么?对不起,我是MySQL的新手,我如何创建它到新的表视图。
提前谢谢。
答案 0 :(得分:0)
为什么要使用加入?为什么不尝试这样的事情:
SELECT codemk,namemk,tm,pr,lp
FROM khs,subjects
WHERE khs.year = subjects.year
答案 1 :(得分:0)
也许这个:
SELECT khs.id khs.codemk, subjects.namemk, subjects.tm, subject.pr, subjects.lp
FROM khs
RIGHT JOIN subjects
ON khs.year=subjects.year, khs.program =subjects.program, khs.codemk = subjects.codemk;
但不确定这是否是你要求的,否则:
SELECT khs.id khs.codemk, subjects.namemk, subjects.tm, subject.pr, subjects.lp
FROM khs
RIGHT JOIN subjects
ON CONCAT(khs.year,khs.program, khs.codemk) = CONCAT(subjects.year, subjects.program, subjects.codemk);
答案 2 :(得分:0)
我不确定您的结果是什么(请问您能提供吗?以及数据表样本)但您现在可以尝试:
SELECT khs.id khs.codemk, subjects.namemk, subjects.tm, subject.pr, subjects.lp
FROM khs
INNER JOIN subjects
ON khs.year = subjects.year
AND khs.program = subjects.program
AND khs.codemk = subjects.codemk;