SQL:使用此查询获取重复记录

时间:2011-01-18 12:20:12

标签: sql join

我有一个包含帖子,标签和tag_ref链接表的应用。我想查询具有特定标记关联的帖子。

数据库结构如下:

帖子

ID

city_id

tags_ref

ROW_ID

TAG_ID

代码

ID

safe_tag

标签

所以tags_ref是帖子和标签之间的链接表。

在帖子中添加了一些标签后,我现在在查询中获得了重复记录。

即使有这个查询:

SELECT P.* FROM posts as P WHERE P.city_id = 2

即使我没有在这里加入表格,只查找city_id字段设置为2的帖子,我仍然只能获得与其相关标签的记录的重复记录。

我也试过了:

DISTINCT (P.id), P.* FROM posts as P WHERE P.city_id = 2

我知道我的帖子表中只有7行,所以我知道重复的记录实际上并不存在,因为我正在计算7个独特的帖子。

任何人都可以帮我弄清楚我哪里出错了吗?

数据库是MySQL

谢谢,

比利

1 个答案:

答案 0 :(得分:0)

DISTINCT (P.id), P.* FROM posts as P WHERE P.city_id = 2

当其他字段(P. *)中的某些值不同时,此处的DISTINCT不执行任何操作。尝试在没有过滤器的情况下查询整个表格帖子,看看你到底有什么。