繁体   English   中英

如何在(My)SQL 中正确连接两个表?

[英]How can I join two tables apropreately in (My)SQL?


我需要将两个表连接在一起。 我知道,在 MySQL 中有一个 JOIN,但是我得到的结果对我的目的来说并不是那么好。

Example: 
Say, I have two tables:
a = 
{[1, 2]} 
{[3, 4]} 

b = 
{[5, 6]} 
{[7, 8]} 

当我现在使用 MySQL 中的 JOIN 命令加入它们时,结果有点像这样:

result = 
{[1, 2], [5, 6]}  
{[3, 4], [5, 6]}  
{[1, 2], [7, 8]}  
{[1, 2], [7, 8]} 

但我需要的是类似

result =  
{[1, 2], [5, 6]} 
{[3, 4], [7, 8]} 

如果有人知道如何使用相当简单的 SQL 脚本来做到这一点,我将非常感激:D



问候:)

您没有join密钥。 您似乎希望数据“并排”。

您可以使用row_number()来生成join键:

select a.*, b.*
from (select a.*,
             row_number() over () as seqnum
      from a
     ) a join
     (select b.*,
             row_number() over () as seqnum
      from b
     ) b
     on a.seqnum = b.seqnum;

注意:这不能保证保留表中行的顺序。 它只会将值并排放置。

在旧版本中,您可以为此目的使用变量:

select ,乙。 from (select a. , (@rna:= @rna + 1) as seqnum from a cross join (select @rna:= 0) params) a join (select b. , (@rnb:= @rnb + 1) as seqnum from b cross join (select @rnb:= 0) params ) b on a.seqnum = b.seqnum;

暂无
暂无

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

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