0

我对 MySQL 比较陌生,遇到了一个我似乎找不到解决方案的问题。我已经搜索但找不到答案。我对我没有正确提出问题的可能性持开放态度。开始:

我正在尝试使用给定列的名称和一个表中该列中的值从另一个表中提取值。第一个表包含 3 列,其中对响应进行了编码。第二个表包含每个项目的每个代码的定义。相同的数字代码根据项目与不同的含义相关联。例如:

table1(此表无法更改):
-------------------------------------------------- ------------
|result_id | f_initial | l_name | 项目_A | 项目_B | 项目_C |
-------------------------------------------------- ------------
| 1 | j | 母鹿 | 1 | 3 | 2 |
| 2 | ķ | 史密斯 | 3 | 1 | 2 |
| 3 | l | 威廉姆斯 | 2 | 2 | 1 |
-------------------------------------------------- ------------


table2(这个表可以修改,拆分,或者任何需要做的事情):
------------------------------------------
|item_id | 项目名称 | 分数 | 定义 |
------------------------------------------
| 1 | 项目_A | 1 | 同意 |
| 2 | 项目_A | 2 | 中性 |
| 3 | 项目_A | 3 | 不同意 |
| 4 | 项目_B | 1 | 可能|
| 5 | 项目_B | 2 | 不太可能|
| 6 | 项目_B | 3 | 没有回复 |
| 7 | 项目_C | 1 | 是的 |
| 8 | 项目_C | 2 | 没有 |
------------------------------------------

我的目标是让查询输出以下内容:
-------------------------------------------------- ------------------
|result_id | f_initial | l_name | 项目_A | 项目_B | 项目_C |
-------------------------------------------------- ------------------
| 1 | j | 母鹿 | 同意 | 没有回复 | 没有 |
| 2 | ķ | 史密斯 | 不同意 | 可能| 没有 |
| 3 | l | 威廉姆斯 | 中性 | 不太可能| 是的 |
-------------------------------------------------- ------------------

非常感谢任何帮助或指导。先感谢您。

4

1 回答 1

0

您必须在item_A/B/Cscore列上连接两个表

select t1.result_id, t1.f_initial, t1.l_name,
       t2a.definition as item_a,
       t2b.definition as item_b,
       t2c.definition as item_c
from table1 t1
join table2 t2a on t2a.score = t1.item_a
join table2 t2b on t2b.score = t1.item_b
join table2 t2c on t2c.score = t1.item_c
where t2a.item_name = 'item_A'
      and t2b.item_name = 'item_B'
      and t2c.item_name = 'item_C'
于 2013-04-10T23:50:07.597 回答