2011-05-19 69 views
0

我不認爲這是一個重複的帖子,因爲我環顧四周,這看起來比已經問過的更具體(但我可能是錯的)。根據特定類別選擇多行(mysql)

我有4個表,其中之一就是查找表

SELECT exercises.id as exid, name, sets, reps, type, movement, categories.id 
FROM exercises 
INNER JOIN exercisecategory ON exercises.id = exerciseid 
INNER JOIN categories ON categoryid = categories.id 
INNER JOIN workoutcategory ON workoutid = workoutcategory.id 
WHERE (workoutcategory.id = '$workouttypeid') 
AND rand_id > UNIX_TIMESTAMP() 
ORDER BY rand_id ASC LIMIT 6; 

練習表中包含運動的名稱,成套,銷售代表的列表,以及一個id

類別表包含身份證,肌肉羣和移動類型

鍛鍊類別表包含身份證和更多具體的運動(即:上身推,或上身拉)

exercisecategory表是包含(和ID的匹配)的exerciseid,類別ID查找表,並workoutid

我還添加練習表中的一列,在輸入數據庫中的行時生成一個隨機數。此數字則僅更新指定類別時,它被調用,然後進行排序並顯示前6上市的升序排列。這爲我生成一個很好的隨機條目。 (在SO的其他地方找到解決方案)。

也能正常工作從一個特定的頂級類別生成6個隨機練習。但我想進一步深入。下面是一個例子...

選擇所有的行內類別ID 4

則仍是4類結果中,發現所有已movementid 2,然後找到一個條目用的typeid 1,然後又爲typeid的2等

TLDR;基本上有類別的幾級,我期待從那裏選擇從這裏幾和幾,他們都是在這個頂尖水平。我想這可能全部被不止一個查詢中執行,但林不知道如何......到底我期待與隨機條目的一個數組結束。

對不起,長時間閱讀,其最好的解釋,我已經得到了。

+0

您能提供一個您希望看到的輸出示例嗎? – 2011-05-19 19:53:36

回答

0

剛剛意識到我再也沒有回來這個帖子...

我結束了使用基於請求過程中所需要的交換機內的幾個MySQL的查詢。完美解決。