2012-11-28 42 views
0

我想有一個店,我創建顯示5級隨機的產品,從類別ID的部分。在PHP連接三個MS SQL表顯示隨機產品

首先每個類別具有ID和一組子Catrgories的,每個子貓都有一個ID,並且每個子貓內是一個數字的產品。每個產品也有一個ID。

產品表包含產品ID和SubCatID。 SubCat表包含SubCatID和CatID Cat表僅包含CatID。

,所以我需要在CATID顯示5分隨機的產品。

$randomprod = mssql_query("SELECT TOP 5* FROM Products WHERE SubCatID = '1' ORDER BY NEWID()"); 
while ($echorand = mssql_fetch_array($randomprod)) { 

我需要一種方法來連接表,所以我可以在一定CATID下,但是顯示所有產品,我發現很難,因爲我的產品表中沒有按」:我可以用一個類似的查詢中獲取隨機產品包含一個CatID。我知道有很多連接,但是PHP相當新,甚至更新MS SQL。任何人都可以告訴我什麼最好,還是請指出正確的方向?

回答

1

加入產品子類,加入分類別來分類,如:

SELECT TOP 5 Products.Name, SubCatergory.Name, Category.Name 
FROM Products 
INNER JOIN SubCatergory ON Products.SubCatID = SubCatergory.SubCatID 
INNER JOIN Catergory ON SubCatergory.CatID = Category.CatID 
WHERE Category.CatID = 1 
ORDER BY NEWID() 

我已經在上面的例子中使用INNER JOIN

+0

這是極好謝謝:)我已經改變它,這樣我選擇所有字段,因爲我也顯示效果比其他名稱的信息。我只是通過使用Products。*來代替Products.Name。然而,我想知道是否有辦法將TOP 5融入到這個領域,因爲Products.TOP 5 *會拋出錯誤,這是可能的還是應該以另一種方式來完成? – Bohdi

+0

正在愚蠢的...選擇TOP 5產品。* +1不得不忍受我。 :p – Bohdi