2010-03-10 96 views
2

查詢: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條款?

+0

這是不是對你有用,或者你想知道如何以不同的方式做到這一點? – 2010-03-10 23:26:22

+0

Duplicate:http://stackoverflow.com/questions/2241991/in-mysql-queries-why-use-join-instead-of-where – 2010-03-11 00:40:59

回答

1

您可以在where子句中進行連接,但最好使用您擁有的語法。查詢的

例子:

SELECT 
    c.Name, 
    bc.CategoryName 
FROM [Categories] c 
    [Business_Categories] bc 
WHERE 
    c.BusinessCategoryID = bc.BusinessCategoryID 
0

ON子句有點像一個WHERE,它過濾的結果,但它是編寫查詢,因爲你是顯示明確的是,一個更具表現力的方式條款兩個表格以非常具體的方式相關。你可以寫一個WHERE子句,它會給出相同的結果和相同的查詢計劃(假設優化器可以算出它),但爲了清楚起見,建議使用JOIN。

在這種情況下,它並沒有太大的區別,但是如果你有一個更復雜的查詢和許多表,使用JOIN語法,你可以看到哪些表是相關的以及哪些字段。您還可以清楚地看到JOIN與用於過濾結果的WHERE子句之間的區別。如果您在WHERE子句中寫入所有內容,可能會更容易混淆查看查詢的意圖。