SQL:从两个表中提取一列并将它们放入一个预定义表中
只是我肩膀上的一个小错误,但是对于我使用这个代码的目的来说,如果这个问题得不到回答,这并不是世界末日。在前言中,有几件事:我知道这是完全不合适的,我知道这不应该在生产环境中使用——更不用说,在生产环境中使用了,我知道这个操作的根源是完全非传统的,但我还是要问: 如果我有两个表,其中包含一组值,我希望将它们并排放入另一个组合的预定义表中,我该怎么做呢 现在,我有两个陈述SQL:从两个表中提取一列并将它们放入一个预定义表中,sql,sqlite,Sql,Sqlite,只是我肩膀上的一个小错误,但是对于我使用这个代码的目的来说,如果这个问题得不到回答,这并不是世界末日。在前言中,有几件事:我知道这是完全不合适的,我知道这不应该在生产环境中使用——更不用说,在生产环境中使用了,我知道这个操作的根源是完全非传统的,但我还是要问: 如果我有两个表,其中包含一组值,我希望将它们并排放入另一个组合的预定义表中,我该怎么做呢 现在,我有两个陈述 INSERT INTO table ('leftCol') SELECT NAME FROM smolT1 ORDER BY n
INSERT INTO table ('leftCol') SELECT NAME FROM smolT1 ORDER BY num DESC LIMIT 3
INSERT INTO table ('rightCol') SELECT NAME FROM smolT2 ORDER BY num DESC LIMIT 3
但是,正如人们所想象的那样,这个查询最终会得到如下结果
leftCol | rightCol
Jack |
James |
John |
| Jill
| Justina
| Jesebelle
当然,如果左栏和右栏排成一行会更好,不过,为了收集这六条记录,我想这不是什么大问题
另外,是的,这两个表确实有一个共同的名称
,但就我查询它们的方式而言,它们彼此完全无关,不应该相互关联,只是并排显示
我只是好奇,一个查询是否能让这两个不相关的查询一起工作并整齐地打印成一个表单,或者我是否不得不接受这样的数据
干杯 SQLite的最新版本支持窗口函数。这允许您执行以下操作:
select min(name1) as name1, min(name2) as name2
from ((select name as name1, null as num2 row_number() over (order by name) as seqnum
from smolt1
where name is not null
) union all
(select null, name, row_number() over (order by name) as seqnum
from smolt2
where name is not null
)
) lr
group by seqnum;