查詢:MySQL的多個查詢
SELECT c.Name
FROM [Catagories] c
SELECT c.Name,
bc.CategoryName
FROM [Catagories] c
INNER JOIN [Business_Categories] bc ON c.BusinessCategoryID = bc.BusinessCategoryID
問題:爲什麼不讓我必須把這個在WHERE
條款?
查詢:MySQL的多個查詢
SELECT c.Name
FROM [Catagories] c
SELECT c.Name,
bc.CategoryName
FROM [Catagories] c
INNER JOIN [Business_Categories] bc ON c.BusinessCategoryID = bc.BusinessCategoryID
問題:爲什麼不讓我必須把這個在WHERE
條款?
您可以在where子句中進行連接,但最好使用您擁有的語法。查詢的
例子:
SELECT
c.Name,
bc.CategoryName
FROM [Categories] c
[Business_Categories] bc
WHERE
c.BusinessCategoryID = bc.BusinessCategoryID
ON子句有點像一個WHERE,它過濾的結果,但它是編寫查詢,因爲你是顯示明確的是,一個更具表現力的方式條款兩個表格以非常具體的方式相關。你可以寫一個WHERE子句,它會給出相同的結果和相同的查詢計劃(假設優化器可以算出它),但爲了清楚起見,建議使用JOIN。
在這種情況下,它並沒有太大的區別,但是如果你有一個更復雜的查詢和許多表,使用JOIN語法,你可以看到哪些表是相關的以及哪些字段。您還可以清楚地看到JOIN與用於過濾結果的WHERE子句之間的區別。如果您在WHERE子句中寫入所有內容,可能會更容易混淆查看查詢的意圖。
這是不是對你有用,或者你想知道如何以不同的方式做到這一點? – 2010-03-10 23:26:22
Duplicate:http://stackoverflow.com/questions/2241991/in-mysql-queries-why-use-join-instead-of-where – 2010-03-11 00:40:59