2011-09-14 46 views
1

sql似乎是我的弱點 - 此查詢返回同一行三次 - 我希望它只返回一行 - 已嘗試不同的user.user_id和不同的posts.user_id(這是關係)既不工作明顯不工作

SELECT DISTINCT posts.user_id, 
       upd8r_stations.title, 
       posts.dated, 
       user_data.user_id, 
       user_data.delegate_no, 
       user_data.first_name, 
       user_data.surname, 
       user_data.company_name, 
       user_data.tel_no, 
       user_data.email_addr, 
       user_data.rfid_tag 
FROM user_data, 
     posts, 
     upd8r_stations 
WHERE posts.station_id IN (SELECT station_id 
          FROM upd8r_stations 
          WHERE owner_id = '10') 
     AND user_data.user_id = posts.user_id 
     AND posts.station_id = upd8r_stations.station_id 
ORDER BY posts.dated DESC 
+6

你能告訴我們你回來的數據嗎?似乎不太可能,DISTINCT不起作用。我猜這是因爲*不是*返回「同一行三次」。 –

+0

大概這個用戶發了3個帖子? (或'upd8r_stations'中有3個匹配的記錄)在這種情況下,您希望爲'posts.dated'或'upd8r_stations.title'創建什麼值? –

+0

它同一行三次,這是我的連接 –

回答

2

DISTINCT上SELECT語句的所有列運行。

我想一些其他列是不同的。 posts.datedupd8r_stations.title似乎是候選人。

+0

我只需要返回唯一的user_data行 - 需要知道每個用戶在屬於所有者的電臺發帖的情況10 –

+2

@Chris - 因此,如果他們在不同的時間發佈了3個不同的帖子,那麼posts.dated應該在單行中返回? –

+0

好,那我該怎麼過來呢? –