【发布时间】:2014-03-21 13:02:08
【问题描述】:
注意:我对 MySQL 还很陌生,所以请多多包涵。
我的数据库中有 2 个表,设置如下:
guides table:
guide_id (primary) | cat_id | title
1 0 guide01
2 0 guide02
steps table:
step_id | guide_id (foreign) | step_txt
1 1 step1 text...
2 1 step2 text...
我正在尝试在数据库中搜索 steps.step_txt 中的关键字并返回指南列表。我当前的查询如下所示:
SELECT DISTINCT *
FROM guides
JOIN steps ON guides.guide_id=steps.guide_id
WHERE step_txt LIKE "%keyword%"
我发现,由于某些指南包含多个关键字,因此会返回重复的行。我希望查询输出包含 guide_id、cat_id 和标题的 1 行,即使它找到 2。
我认为问题在于我使用了 JOIN,因此查询实际上是从两个表中返回一个连接行,这两个表将具有不同的 step_id 和 step_txt,因此 DISTINCT 不会影响它。最好的解决方法是什么?
【问题讨论】: