2015-02-24 113 views
-1
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查询

+0

如果你只是添加“distinct”会发生什么? – 2015-02-24 19:37:13

+0

什么都没有发生...... – tahir 2015-02-24 19:42:12

+0

查询意味着“来自第一个表的所有记录”而不是第二个表,只匹配来自第二个表的行,使用goole'ROW_NUMBER()'获取不同的值。 – 2015-02-24 19:54:17

回答

0

目前查询从第二表得到第一表(与日期“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'