带查询重复值的SQL查询
问题描述:
SELECT first.name,first.country, second.name, second.string
FROM
first LEFT OUTER JOIN second
ON
first.name = second.name
WHERE
first.date='2015/02/24'
该查询表示来自第二个表的所有记录和来自第一个表的匹配记录。现在我的问题是,在2015年2月24日我有第二个表中重复的名称,我想从第二个表中不同的名称,然后从第一个表中匹配的值。现在我的查询显示了第二个表中的所有重复值以及第一个表中的匹配记录。在这方面的任何帮助。由于带查询重复值的SQL查询
答
目前查询从第二表得到从第一表(与日期“2015年2月24日”)所有行和匹配记录。
希望你的表有一个主键(在这个例子中为id
列)。然后你可以做这样的事情:
SELECT first.name,first.country, second.name, second.string
FROM
first
LEFT OUTER JOIN second
ON
second.id = (SELECT min(id) FROM second_min WHERE first.name = second_min.name)
WHERE
first.date='2015/02/24'
如果你只是添加“distinct”会发生什么? – 2015-02-24 19:37:13
什么都没有发生...... – tahir 2015-02-24 19:42:12
查询意味着“来自第一个表的所有记录”而不是第二个表,只匹配来自第二个表的行,使用goole'ROW_NUMBER()'获取不同的值。 – 2015-02-24 19:54:17