我有一个新闻表如下
消息:
| id | title | description
| 1 | Breaking news | bla bla bla
| 2 | Heavy snowfall in london | bla bla bla
a 类型表如下:
| id | type_name | type_code
| 1 | weather | 0567
| 2 | city | 0653
和一个 NewsType 表如下
|id | news_id | type_id | created_by |
| 1 | 2 | 1 | "John" |
| 2 | 2 | 2 | "Alex" |
从 NewsType 表中可以看出,一条新闻可以分为两种或多种类型。
我需要显示与类型相对应的新闻。用户可能会说给我有关城市和天气的所有新闻。为了显示这一点,我正在做类似的事情:
select distinct n.* , nt.created_at
from news n, newstype nt, type t where
n.id = nt.news_id and
t.id = nt.type_id
order by nt.created_at
limit 25
问题是这个查询两次返回相同的消息(我认为这是因为我正在做的内部连接)。我应该在查询中进行什么更改,以便如果新闻被分类为两种类型,并且用户请求查看相同的两种类型的新闻,我只能得到单个新闻项?而不是两个!