繁体   English   中英

在MySQL中映射所选值

[英]Mapping the selected value in MySQL

我有两个表中的2组数据,我需要加入表

表格1

id     qid     choice               
--------------------------
11     2020     Item 1
12     2020     Item 2
13     2020     Item 14

TABLE_2

rid    qid     question
---------------------------
1001   2020    1.I love apple
1002   2020    2.I love orange
1003   2020    14.I hate lemon

产量

id    rid     qid     choice       question
-------------------------------------------------
11    1001    2020    Item 1      1.I love apple
12    1002    2020    Item 2      2.I love orange
13    1003    2020    Item 14     14.I hate lemon

表_2中“问题”列的格式必须以

1.XXXX , 2.XXXX , 14.XXXX until 20.XXXXXX

我认为在“。”之前获取数字。 作为加入条件。 但是如何获得数量或其他更好的解决方案呢?

您应该更改当前表的数据结构。 但是对于您当前的数据结构,您可以使用此棘手的查询(假设table_1.choice的模式始终为Item XX ):

SELECT t1.id, t2.rid, t1.qid, t1.choice, t2.question
  FROM Table1 t1
  JOIN Table2 t2
    ON RIGHT(t1.choice, LENGTH(t1.choice) - 5) 
     = LEFT(t2.question, LOCATE('.',t2.question) - 1);

输出:

| ID |  RID |  QID |  CHOICE |        QUESTION |
|----|------|------|---------|-----------------|
| 11 | 1001 | 2020 |  Item 1 |  1.I love apple |
| 12 | 1002 | 2020 |  Item 2 | 2.I love orange |
| 13 | 1003 | 2020 | Item 14 | 14.I hate lemon |

看到这个SQLFiddle

SELECT t1.id, t2.rid, t1.qid, t1.choice, t2.question
FROM table_1 t1
JOIN table_2 t2
On t1.qid = t2.qid
Order by t2.question

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM