SQL - 连接中的重复项

时间:2013-11-11 02:18:51

标签: mysql sql select duplicates distinct

我有一个问题:

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

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

2 个答案:

答案 0 :(得分:0)

GROUP BY s.s_id

是解决方案。

答案 1 :(得分:0)

  1. 结果在此处不包含绝对相等的行,因此从技术上讲,它们不会重复
  2. 要删除重复项,您需要SELECT DISTINCT或GROUP BY仅需要非重复的字段,并且外部将子查询中的其余数据连接到相应的键值上,仅从中获取1(第一个或最后一个或其他)行它们。