如何使用join关键字连接SQL Server中的两个表
我不知道在以下情况下如何使用join关键字。我有两个表,我需要将它们合并到一个表中。这是密码如何使用join关键字连接SQL Server中的两个表,sql,sql-server,join,keyword,Sql,Sql Server,Join,Keyword,我不知道在以下情况下如何使用join关键字。我有两个表,我需要将它们合并到一个表中。这是密码 use DEV select top 10 Casa_de_marcat, Numar_bon, Data_bon from antetBonuri where Casa_de_marcat=1 order by Data_bon desc use DEV select top 10 Total, Data, Ora, Vi
use DEV
select top 10
Casa_de_marcat,
Numar_bon,
Data_bon
from antetBonuri
where Casa_de_marcat=1
order by Data_bon desc
use DEV
select top 10
Total,
Data,
Ora,
Vinzator
from bp
order by Data desc
这是两个表的结果
Casa_de_marcat Numar_bon Data_bon
-------------- ----------- -----------------------
1 NULL 2018-05-12 00:00:00.000
1 1 2018-04-13 00:00:00.000
1 NULL 2018-03-16 00:00:00.000
1 NULL 2018-03-16 00:00:00.000
1 1 2018-02-16 00:00:00.000
1 1 2018-02-05 00:00:00.000
1 NULL 2018-02-05 00:00:00.000
1 NULL 2018-02-05 00:00:00.000
1 10 2017-11-02 00:00:00.000
1 NULL 2017-09-29 00:00:00.000
(10 rows affected)
Total Data Ora Vinzator
---------------------- ----------------------- ------ ----------
12 2019-11-15 00:00:00.000 1150 naomi
12 2019-11-15 00:00:00.000 1150 naomi
82 2019-10-17 00:00:00.000 1035 MIHAI
12 2019-10-17 00:00:00.000 1038 MIHAI
12 2019-10-17 00:00:00.000 1043 MIHAI
12 2019-10-17 00:00:00.000 1044 MIHAI
12 2019-10-17 00:00:00.000 1044 MIHAI
12 2019-10-17 00:00:00.000 1053 MIHAI
12 2019-10-17 00:00:00.000 1105 MIHAI
12 2019-10-17 00:00:00.000 1108 MIHAI
(10 rows affected)
最终结果应该是将上述所有列合并到一个表中,顺序不计算在内。
是的,我的错,我在使用SQL serverA
完全连接
技术上满足您的要求:
select ab.*, bp.*
from (select top 10 Casa_de_marcat, Numar_bon, Data_bon
from antetBonuri
where Casa_de_marcat = 1
order by Data_bon desc
) ab full join
(select top 10 Total, Data, Ora, Vinzator
from bp
order by Data desc
) bp
on 1 = 0; -- never matches
没有明显的JOIN
键
这将生成包含所有列的20行。在每一行中,一组列(每个子查询)都将是NULL
这似乎就是你想要的。我不知道这有多有用。或者为什么您更喜欢使用JOIN
而不是UNION ALL
来获取此信息
编辑:
我还想到,你可能想要10排并排。如果是,则使用行编号()
:
这将产生10行,结果“并排”。两个表中的行的顺序是任意的。您确定要使用MySQL吗?(前10名看起来像MS SQL Server代码。)如何加入?向我们展示这两个结果以及组合结果。(作为格式化文本,而不是图像)如果可能,请分享您的预期结果?
select ab.Casa_de_marcat, ab.Numar_bon, ab.Data_bon,
bp.Total, bp.Data, bp.Ora, bp.Vinzator
from (select top 10 Casa_de_marcat, Numar_bon, Data_bon,
row_number() over (order by (select null)) as seqnum
from antetBonuri
where Casa_de_marcat = 1
order by Data_bon desc
) ab full join
(select top 10 Total, Data, Ora, Vinzator,
row_number() over (order by (select null)) as seqnum
from bp
order by Data desc
) bp
on ab.seqnum = bp.seqnum;