mysql如何将2列值加入2列值

时间:2015-02-05 16:57:15

标签: php mysql join

我有两个包含列的表格如下:

  1. khs(id,year,program,codemk)
  2. 科目(id,year,program,codemk,namemk,tm,pr,lp)
  3. 我想要一个包含以下内容的结果:

    codemk, namemk, tm, pr, lp
    

    注意: year表中的programcodemkkhs字段在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;
    

    tmprlp的结果并非我的预期。我错过了什么?对不起,我是MySQL的新手,我如何创建它到新的表视图。 提前谢谢。

3 个答案:

答案 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;