SQL - 从另一个表获取列以加入此查询

时间:2013-12-14 15:27:41

标签: sql

我在下面的代码中显示了location_id和反社会犯罪的总数,但我希望从另一个名为location_name的表中获取location_dim 。我试图找到一种方法来UNION它,但无法让它工作。有什么想法吗?

SELECT fk5_location_id , COUNT(fk3_crime_id) as TOTAL_ANTISOCIAL_CRIMES
from CRIME_FACT
WHERE fk1_time_id = 3 AND fk3_crime_id = 1 
GROUP BY fk5_location_id;

2 个答案:

答案 0 :(得分:8)

您想使用join查找位置名称。查询可能如下所示:

SELECT ld.location_name, COUNT(cf.fk3_crime_id) as TOTAL_ANTISOCIAL_CRIMES
from CRIME_FACT cf join
     LOCATION_DIM ld
     on cf.fk5_location_id = ld.location_id
WHERE cf.fk1_time_id = 3 AND cf.fk3_crime_id = 1
GROUP BY ld.location_name;

您需要为ld.location_nameld.location_id添加正确的列名。

答案 1 :(得分:0)

您需要找到两个表之间的关系以将位置链接到犯罪。这样你就可以使用" join"并从您感兴趣的每个表中选择字段。

我建议退一步,阅读关系数据库的基础知识。那里有许多好书,是一个完美的起点。