我有2个表,我想同时获得按创建日期时间排序的两行。
例如,我有t1
和t2
,表的架构如下所示:
----------------------
t1
----------------------
id | title | skill
----------------------
1 | T_1 | S_1
----------------------
2 | T_2 | S_2
----------------------
3 | T_3 | S_3
----------------------
----------------------
t2
----------------------
id | title | option
----------------------
1 | TT_1 | O_1
----------------------
2 | TT_2 | O_2
----------------------
3 | TT_3 | O_3
----------------------
我想得到这样的结果:
----------------------------------
t1_t2
----------------------------------
tmp_id| title | option | skill
----------------------------------
1 | TT_1 | O_1 |
----------------------------------
2 | T_2 | | S_2
----------------------------------
3 | TT_3 | O_2 |
----------------------------------
4 | T_1 | | S_1
----------------------------------
5 | TT_2 | O_3 |
----------------------------------
6 | T_3 | | S_3
----------------------------------
t1
和t2`之间没有任何关系,并且只有单独的表。那可能吗?如果是,我该怎么做?
最佳答案
您可以将表合并在一起,并根据title
的最右边部分(用下划线分隔)或此处有意义的任何顺序生成行ID(由于我仔细研究了一下,因此并没有真正遵循所需结果的顺序) ):
Set @rn:=0;
SELECT @rn:=@rn+1 as tmp_id, title, option, skill
(
SELECT title, CAST(NULL as VARCHAR(3)) as option, skill FROM t1
UNION ALL
SELECT title, option, NULL FROM t2
) subunion
ORDER BY SUBSTRING_INDEX(title, '_', -1);
关于mysql - 如何在MySQL中查询多表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53791736/