我有两个桌子
Table1:temptable3
id |Chromosome | Start | End | Reference | Alternative | QUAL | MQ
........................................................................
NULL chr1 12334 12335 A TT 10 20
NULL chr1 12334 12335 C TT 5 3
NULL chr2 123 123 A T 1 2
NULL chr2 34 34 A T 11 60
NULL chr3 12 12 A T 6 NULL
Table2:TableVariants2
id | Chromosome | Start | End | Reference | Alternative
.............................................................
1 chr1 12334 12335 A TT
2 chr1 12334 12335 C TT
3 chr2 123 123 A T
4 chr2 34 34 A T
5 chr3 12 12 A T
我想基于相等的染色体,开始,结束,参考和替代来合并它们,并获得:
id |Chromosome | Start | End | Reference | Alternative | QUAL | MQ
........................................................................
1 chr1 12334 12335 A TT 10 20
2 chr1 12334 12335 C TT 5 3
3 chr2 123 123 A T 1 2
4 chr2 34 34 A T 11 60
5 chr3 12 12 A T 6 NULL
我尝试了以下操作,但这是一个永无止境的查询...
UPDATE temptable3
INNER JOIN TableVariants2
ON temptable3.Chromosome = TableVariants2.Chromosome
AND temptable3.Start = TableVariants2.Start
AND temptable3.End = TableVariants2.End
AND temptable3.Reference = TableVariants2.Reference
AND temptable3.Alternative = TableVariants2.Alternative
SET temptable3.id = TableVariants2.id;
答案 0 :(得分:0)
您需要将两个表的所有列组合在一起,形成一个唯一的ID,必须在连接中使用此类列并选择所需的列,希望对您有所帮助。
SELECT B.id, A.Chromosome,A.Start,A.End,A.Reference,A.Alternative,A.QUAL,A.MQ
FROM temptable3 A
INNER JOIN TableVariants2 B
ON A.CHROMOSOME=B.CHROMOSOME AND A.START=B.STAR AND A.END=B.END
AND A.REFERENCE=B.REFERENCE AND A.ALTERNATE=B.ALTERNATE