如何在没有主键的情况下对SQL查询进行排序?

时间:2011-04-30 15:06:48

标签: mysql has-and-belongs-to-many

我有一个名为articles_tags的表,它有两列:

  • 的article_id
  • TAG_ID

(has_and_belongs_to_many association)(我用php实现了这个)

我想找到输入db的最后一篇文章_id,所以我试着这样做:

SELECT `article_id` FROM `articles_tags`  ORDER BY `article_id` DESC LIMIT 1

第一个问题是我不希望按article_id排序,第二个问题是它不起作用。

我认为因为我在这张表中没有主键。

2 个答案:

答案 0 :(得分:3)

一个简单的MAX就足够了:

select max(article_id) from articles_tags

更新:

获取上次标记的文章:

select article_id from articles_tags where tag_id = 
  (select max(tag_id) from articles_tags)

答案 1 :(得分:2)

您需要一个额外的列...自动生成的数字或DaytIme字段。然后你可以排序。否则你永远不能假设得到正确的记录。

更新:不一定需要是id字段