MySQL:计算2个不同表中的匹配行

时间:2019-05-14 12:22:12

标签: mysql

我必须计算2个不同表中匹配行的数量,还必须计算一个表中唯一行的数量,从中我计算另一个表中的匹配行。

我尝试选择所需的列,但我不了解如何计算匹配和不匹配的行:

select nastya.v_em, nastya.cdr3aa from nastya 
union all 
select emerson2017.vgene, emerson2017.amino from emerson2017

2 个答案:

答案 0 :(得分:1)

尝试

  

id-使用您的表ID

使用别名

select ns.v_em, ns.cdr3aa, em.vgene, em.amino from nastya as ns, emerson2017 as em WHERE ns.id = em.id

或  内联

select ns.v_em, ns.cdr3aa, em.vgene, em.amino from nastya as ns
INNER JOIN emerson2017 as em ON ns.id = em.id

答案 1 :(得分:0)

您应将INNER JOIN与条件配合使用以匹配期望在两个表上相等的列。结果集将是匹配的行。

SELECT * FROM tableA 
INNER JOIN tableB on tableA.columnA = tableB.columnA AND ... 

要查找唯一的行,请使用LEFT JOIN检查其中第二个表的列不存在的行:

SELECT * FROM tableA 
LEFT JOIN tableB on tableA.columnA = tableB.columnA
WHERE tableB.columnA IS NULL