mysql 如何将 2 列值连接到 2 列值

mysql How To join 2 column value into 2 column value

我有两个 table 列如下:

  1. khs (id, year, program, codemk)
  2. 科目(id、年份、程序、codemk、namemk、tm、pr、lp)

我想要一个包含以下内容的结果:

codemk, namemk, tm, pr, lp

注意: 字段 yearprogramcodemkkhs table 中每个都不是唯一的也在 subjects table。但是将这些字段的 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 的新手,我该如何将其创建到新的 table 视图。 提前致谢。

为什么要使用联接?为什么不尝试这样的事情:

SELECT codemk,namemk,tm,pr,lp
FROM khs,subjects
WHERE khs.year = subjects.year

也许是这样:

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);

我不确定你的预期结果是什么(能否提供一下?以及数据表的样本)但你现在可以试试:

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;