2015-02-24 134 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'