2

我有来自两个表的 2 组数据,我需要加入该表

表格1

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

表_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

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

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

我想得到“。”之前的数字。作为加盟条件。但是如何获得数字或任何其他更好的解决方案?

4

2 回答 2

1

您应该更改当前表的数据结构。但是对于您当前的数据结构,您可能会使用这个棘手的查询(假设模式table_1.choiceis always 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

于 2013-09-26T07:01:50.290 回答
0
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
于 2013-09-26T04:45:10.073 回答