有关多个连接的orderby语句

时间:2009-08-10 09:22:12

标签: php mysql join sql-order-by

我有三个表,每个表包含一个自动递增的PK。我需要从这些表的混合中选择最新的(即ORDERBY DESC)条目。 我想在一个查询中进行,有两个连接。 我的想法是以某种方式选择一个表,按id DESC排序,然后以某种方式合并结果。 有没有人有办法(或者可能是更好的主意)这样做?

(使用mysql) 修改 对不起 - 这是一个更详细的规范: 我有三个表,postsstoriesfavs。 每个列都有(至少)三列iduiddate。他们都是 PK。 id自动递增(每个表单独)。 uid是FK,但这无关紧要。我需要结果集包含最新的20或30个条目。

2 个答案:

答案 0 :(得分:3)

没有连接的UNION将是可能的。

有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/union.html

答案 1 :(得分:0)

由于这些表没有关系,加入它们没有任何意义,对吧?

据我了解,您希望按照创建日期在一个结果集中订购源自3个不同表的记录。有两种方法可以实现这一目标:

  1. 对所有3个表使用可排序且唯一的PK。我知道你可以在PostgreSQL中轻松完成这项工作。在MySQL中您需要一个解决方法:使用自动增量PK创建第4个表,并将其他3个表PK更改为指向第4个表PK的FK。这有点麻烦,您需要注意这样一个事实:自动增量字段不是可靠排序属性的良好候选(删除记录会导致序列中的间隙,以后可能会填充)。

  2. 为3个表中的每个表添加一列created并存储每个记录的创建日期。然后可以按此列对UNION进行排序。您已经有一列date。你不能用这个栏吗?