2013-12-14 25 views
0

我已得到下面的代码,其中显示location_id和反社会性犯罪的总数,但我希望从另一个表location_dim获得location_name也可以输出。我试图找到一个方法来UNION它,但不能得到它的工作。有任何想法吗?SQL - 从另一个表中获取一列以加入此查询

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; 

回答

6

您想使用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

0

您需要找到两个表之间的关系,以将位置链接到犯罪行为。这样,你可以使用“加入”,并选择你感兴趣的每个表中的字段。

我建议退后一步,阅读关系数据库的基础知识。那里有很多好书,这是一个完美的开始。

相关问题