我正在一个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