您好基本上我有2个表,有162个条目,我试图用其他表中的条目填充新表,以显示数值之间的差异
Insert Into popdiff(
popdiff)
select (a.malepop+a.femalepop)-(b.malepop+b.femalepop)
from tablea a, tableb b;
我遇到的问题是它返回26244个结果,即162 * 162而不是162,我期待的,已经调查了一下查询是找到表中每个条目的值 - tableb中的162个值
我怎么能简单地只返回162行?
答案 0 :(得分:0)
你必须做一个内部联接:
选择(a.malepop + a.femalepop) - (b.malepop + b.femalepop)
from tableA使用(field)
那将完成这项工作
答案 1 :(得分:0)
您没有指定两个表之间的关系,而这是一个交叉连接,它返回您描述的内容。以WHERE
条件或JOIN
条件指定关系。
其中:
SELECT (a.malepop+a.femalepop)-(b.malepop+b.femalepop)
FROM tablea a, tableb b;
WHERE a.id = b.id;
JOIN:
SELECT (a.malepop+a.femalepop)-(b.malepop+b.femalepop)
FROM tablea a
INNER JOIN tableb b ON a.id = b.id;
当然,您可能有不同的ID名称,因此请相应地更改a.id = b.id
。