我正在尝试对具有 id、mls_id、address、agent_id 等结构的表执行搜索。我想做的是提取 agent_id 的所有记录,但如果有相同的 mls,则不要提取多个记录。例如:
Select * From table WHERE agent_ID = 1234
可能会提取 5 条记录,但假设其中两条记录的 mls_id 相同。有没有办法只提取其中一个,并且仍然保持所有其他结果的完整性?
这似乎可以解决问题:
它的作用是从具有相同 mls_id 的记录中选择具有最小 id 的记录
SELECT id, mls_id, address, agent_id
FROM MyTable t1
WHERE t1.agent_id=1 AND t1.id =
(SELECT Min(t2.id)
FROM MyTable t2
WHERE agent_id=1 AND t2.mls_id=t1.mls_id
GROUP BY t2.mls_id)
这是小提琴示例:SqlFiddle
SELECT DISTINCT *
FROM table
WHERE agent_ID = 1234
使用DISTINCT
关键字将从结果集中删除重复记录。