2013-10-26 28 views
3
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(如果沒有,請調用它)?這是MySQL JOIN嗎?

這是通過使用代理和主鍵投其所好細節

+0

這是一個JOIN ... – Sparky

+1

相關:http://stackoverflow.com/a/11180050/1291428; ansi加入vs隱式加入 – Sebas

+0

嗨,感謝您分享該鏈接;看起來好像建議使用顯式連接而不是隱式 – Drewdavid

回答

2

是的,它是連接表在一起,它將提供從所有表的相關信息。

鏈接表的通過WHERE,而不是JOIN一個主要的垮臺並不能夠使用LEFTRIGHT,並且Full從一個表中顯示的記錄,即使在缺少其他。

但是,您的SQL語句無效。您沒有將dim_locations鏈接到其他表中的任何一個,並且它在FROM子句中缺失。

你使用INNER JOIN這相當於你WHERE子句查詢可能看起來像下面這樣:

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 
2

是的,它是連接表。當join子句沒有明確使用時,它被稱爲非ANSI JOIN語法。當使用join子句時,它是ANSI JOIN

+0

只是好奇,「ANSI」這個詞是怎麼表達的?人們會把它看作是我加入的還是「an-c」? –

+0

第二個我發音。我的母語不是英語。 – Kinjal