我正在一個web應用程序,我有一個數據庫與兩個表。其中一個被稱爲實體,另一個是活動。這是活動表中有許多實體的一對多關係。活動表有一個與它相關的日期,我想根據某些實體ID拉取結果,但我只想拉取最近的活動(按其日期)。所以基本上,我只希望每個實體都有一個回報。必須有一種方法可以在不使用php解析數據的情況下執行此操作。我想盡可能快地製作應用程序。任何幫助將不勝感激。拉最新的結果從一對多加入到mysql
0
A
回答
1
在字段名猜測...
SELECT
e.*, a.*
FROM
(SELECT
MAX(ActivityID) ActivityID,
EntityID
FROM
Activity
GROUP By
EntityID) maxActivity
INNER JOIN Activity a
ON maxActivity.ActivityID = a.ActivityID
INNER JOIN Entity e
ON e.EntityID = a.EntityID
或者,如果ID並不總是(假定兩種活動不能共享同一日期)最新的,你真的想日期
SELECT
e.*, a.*
FROM
(SELECT
MAX(Date) Date,
EntityID
FROM
Activity
GROUP By
EntityID) maxActivity
INNER JOIN Activity a
ON maxActivity.Date = a.Date
and maxActivity.EntityID = a.EntityID
INNER JOIN Entity e
ON e.EntityID = a.EntityID
0
我會說,通過PK/FK關係創建一個鏈接表。
那麼舉個例子: [entities table] ------ [ent_activities] --- [activities],尤其是因爲這兩個數據是如此交織在一起的。
1:M是一個可怕的數據完整性問題,甚至當你有10個,甚至數百個1:M的時候更是如此。
祝你好運
相關問題
- 1. 在MySQL中加入新列一對多
- 2. MYSQL:從SELECT結果中插入多個結果到表中
- 3. MySQL加入最新一行
- 4. MySQL多人合一。如何找到最差(最低)的結果和最新的結果?
- 5. mysql加入問題,加入一對多關係中的最新記錄
- 6. mysql加入不到期望的結果
- 7. mysql一對多表加入
- 8. 一對多加入mysql
- 9. MySQL一對多加入?
- 10. 一個加入的MySQL結果在PHP
- 11. MYSQL加入唯一的結果行
- 12. MySQL更新多行結果從API
- 13. 加入最近的列條目到MySQL查詢結果
- 14. MySQL左加入一個訂購的結果從另一個表
- 15. MySQL EAV SELECT一對多單行結果
- 16. MySQL加入。從一個表到另一個表加入多行?
- 17. MYSQL加入檢索結果
- 18. MySQL加入結果乘以
- 19. 結合Mysql的結果加入
- 20. C#將MySQL結果拉入數組
- 21. 從多個MySQL表中加入結果並使用PHP輸出
- 22. 從兩個表加入,然後從結果加入到第三個表mysql
- 23. Zend加入從左表多個結果
- 24. 更新結果(明確最後的結果),如果下拉列表更新
- 25. MYSQL - 從一個表中加入最新的匹配記錄到另一個
- 26. MYSQL - 加入多個日期 - 只得到第一次從加入
- 27. 得到最頂級的一個表加入結果
- 28. 從JSON結構插入多行到MySQL
- 29. 匹配從mysql檢索到的結果的下拉列表
- 30. 加入多個結果表
日期不是唯一的,但第一個幫助。所以我只需從括號中的select中獲取最大ID並基於該ID進行連接。我不知道你可以嵌套選擇語句。有沒有人知道我在哪裏可以找到更多像這樣的advnaced查詢的例子? – Dom 2011-02-03 17:15:47
@Dom你可以嘗試http://stackoverflow.com/tags/sql/hot – 2011-02-03 17:18:44