SQL笛卡尔类型联接

SQL笛卡尔类型联接,sql,join,jointable,Sql,Join,Jointable,我有两个表(在本例中简化了),我想以特定的方式连接它们 表1(ae)包含受试者编号、ae术语 表2(mh)包含受试者编号、mh术语 以下是有帮助的结构 INSERT INTO ae VALUES ('0001-0012','DRY EYE (12 OCT 2017)'); INSERT INTO ae VALUES ('0001-0012', 'DEPRESSION (7 OCT 2017)'); INSERT INTO ae VALUES ('0001-0013','SKIN ATROP

我有两个表(在本例中简化了),我想以特定的方式连接它们

  • 表1(ae)包含受试者编号、ae术语
  • 表2(mh)包含受试者编号、mh术语
以下是有帮助的结构

INSERT INTO ae VALUES ('0001-0012','DRY EYE (12 OCT 2017)');
INSERT INTO ae VALUES  ('0001-0012', 'DEPRESSION (7 OCT 2017)');
INSERT INTO ae VALUES ('0001-0013','SKIN ATROPHY, LEFT UPPER ARM (4 OCT 2017 )');


INSERT INTO mh VALUES ('0001-0012', 'DIABETES MELLITUS (UN JUL 2007)');
INSERT INTO mh VALUES ('0001-0012', 'GASTRO-ESOPHAGEAL REFLUX INTERMITENT GR1 (18 AUG 2017)');
INSERT INTO mh VALUES ('0001-0012', 'ESOPHAGITIS GR 1 (18 AUG 2017)');
INSERT INTO mh VALUES ('0001-0012', 'DIARRHEA INITERMITTENT GR2 (5 JUL 2017 )');
INSERT INTO mh VALUES ('0001-0012', 'FATIGUE INTERMITTENT GR1 (18 AUG 2017)');
INSERT INTO mh VALUES ('0001-0013', 'VOMITING, INTERMITTENT GR1 (6 JUL 2017 )');
我希望我的输出如下所示:


有人帮忙吗?正如你所看到的,这是我需要的一个粗糙的连接

您可以使用
行编号()
完全连接

select coalesce(ae.col1, mh.col1) as col1, ae.col2, mh.col2
from (select ae.*, row_number() over (partition by col1 order by col1) as seqnum
      from ae
     ) ae full join
     (select mh.*, row_number() over (partition by col1 order by col1) as seqnum
      from mh
     ) mh
     on mh.col1 = ae.col1 and mh.seqnum = ae.seqnum
order by coalesce(ae.col1, mh.col1), seqnum;

这是到目前为止我更新的代码,它现在给了我正确的顺序编辑只是在代码的末尾添加了DESC来给我结果

select coalesce(ae.subject, mh.subject) as subject, ae.aeterms, mh.mhterms
from (select ae.*, row_number() over (partition by subject order by subject) 
as seqnum
from ae) ae full join
(select mh.*, row_number() over (partition by subject order by subject) as 
seqnum from mh) mh
on mh.subject = ae.subject and mh.seqnum = ae.seqnum
order by coalesce(ae.subject, mh.subject), ae.seqnum Desc;

用你正在使用的数据库标记你的问题。哪个数据库管理系统?到目前为止你试过什么????努力一点!!!你能解释一下你期望的输出是什么吗?逻辑是什么?除受试者编号外,哪一行ae与mh匹配?因为如果日期在这里是相关的,应该在一个单独的字段中。日期作为ae术语和mh术语字段中文本字符串的一部分是不相关的。如果您的意思是
col1=受试者编号
,那么您可以在这里进行随机配对。我想OP应该将日期和术语分开,并创建一个附加字段。