0

我有一个查询:

SELECT DISTINCT * 
FROM table1 AS s
LEFT OUTER JOIN table2 AS t
ON s.s_id = t.t_id
WHERE (
s.body LIKE  '%string%'
OR t.name LIKE  '%string%'
)
ORDER BY s.time DESC

但我仍然得到重复的元组。为什么是这样?

4

2 回答 2

0
  1. 结果在这里不包含绝对相等的行,因此从技术上讲它们不会重复
  2. 要消除重复项,您需要仅 SELECT DISTINCT 或 GROUP BY 您需要不重复的字段,并将子查询中的其余数据外部连接到相应的键值上,仅从它们中获取 1(第一或最后或其他)行。
于 2013-11-11T02:39:42.563 回答
0
GROUP BY s.s_id

是解决方案。

于 2013-11-11T02:27:00.627 回答