你似乎是新的SQL 。穿過它是很危險的。我會建議加入這些SQL語句以瞭解發生了什麼。
SELECT * FROM Product, ProductClassification
此時,您將從兩個表中選擇每個可能的行組合。現在你想開始過濾器。對於初學者,你需要獲得你的產品分類。你應該在這裏使用「OR」而不是AND。沒有ProductClassification.ClassificationID將是既1750年到1749年
SELECT * FROM Product, ProductClassification WHERE
ProductClassification.ClassificationID = '1750' OR
ProductClassification.ClassificationID = '1749'
在這一點上,你已經過濾下來ProductClassification.ClassificationID,但你需要描述你只行有意在ProductClassification.ProductID和Product.ID是相同的。
SELECT * FROM Product, ProductClassification WHERE
(ProductClassification.ClassificationID = '1750' OR
ProductClassification.ClassificationID = '1749') AND
ProductClassification.ProductID = Product.ID
這會給你一個單獨的行,該過濾器上的每個可能的組合。在你的例子中,你應該有兩行 - 一個是ClassificationID爲1750,另一個是ClassificationID爲1749.因爲你只對Product.ID和Product感興趣。名稱,你應該只返回這兩個領域:
SELECT Product.ID, Product.Name FROM Product, ProductClassification WHERE
(ProductClassification.ClassificationID = '1750' OR
ProductClassification.ClassificationID = '1749') AND
ProductClassification.ProductID = Product.ID
想必你只需要唯一值,這樣你就可以使用「DISTINCT」操作符,將你的回油過濾器到獨特的價值觀:
SELECT DISTINCT Product.ID, Product.Name FROM Product, ProductClassification WHERE
(ProductClassification.ClassificationID = '1750' OR
ProductClassification.ClassificationID = '1749') AND
ProductClassification.ProductID = Product.ID
使用JOIN語句處理這個查詢有很多更好的方法,但這是一個好的開始。
來源
2011-10-10 14:59:19
Dan
謝謝你們所有幫助我的答案。 「Dano」謝謝你爲我分手,幫了我很多。 「德姆」我最終使用你的程序。 – Peter