这是MySQL加入吗?

参见英文答案 > Explicit vs implicit SQL joins                                    12个

SELECT
     dim_date.date, dim_locations.city, fact_numbers.metric
FROM
     dim_date, fact_numbers
WHERE
     dim_date.id = fact_numbers.fk_dim_date_id
AND
     dim_locations.city = "Toronto"
AND
     dim_date.date = 2010-04-13;

因为我没有使用JOIN命令,所以我想知道这是否确实是一个JOIN(如果不是,那该怎么称呼它)?

这是通过使用代理和主键来匹配细节的方式的维度模型

解决方法:

是的,它将表格连在一起,因此它将提供所有表格的相关信息.

通过WHERE而不是JOIN链接表的一个主要缺点是无法使用LEFT,RIGHT和Full来显示来自一个表的记录,即使在另一个表中丢失也是如此.

但是,您的SQL语句无效.您没有将dim_locations链接到其他任何一个表,并且它在FROM子句中缺失.

使用与WHERE子句相当的INNER JOIN的查询可能如下所示:

SELECT DD.date, DL.city, FN.metric
FROM dim_date AS DD
  JOIN fact_numbers AS FN ON DD.id = FN.fk_dim_date_id
  JOIN dim_locations AS DL ON DL.id = FN.fk_dim_locations_id
WHERE DL.city = 'Toronto'
AND DD.date = 2010-04-13
上一篇:如何避免在MongoDB(使用Mongoid)或ActiveRecord(使用MySQL的Rails)中插入两次相同的记录?


下一篇:mysql – 在关系数据库中存储’元数据’的正确方法是什么?