2013-09-25 29 views
0

鲜明请找到下面给出的查询:使用SQL查询

SELECT DISTINCT 
     reco_index_content_code, 
     reco_index_content_name, 
     reco_index_content_url 
    FROM tbl_reco_index_contents 
    WHERE 
     reco_index_user_action_at_select = 1 
     AND user_profile_number = 1 

,我需要选择reco_index_content_name截然不同。

上面的查询应该如何修改,为了达到这个目的,使得没有重复的reco_index_content_name行?

+2

你会用下列'reco_index_content_code'吗?例如,只选择最低的代码? –

+1

如果有重复项,您希望返回哪一行。请注意,“不关心”往往表明设计不佳。 – Strawberry

+0

@Strawberry - 我明白了,但是我正在为演示做一个临时修复。它可以是任何行。 – user264953

回答

1

标准的解决方案进行了说明,并使用关联子查询如下:

SELECT x.* 
    FROM my_table x 
    JOIN 
    (SELECT grouping_id 
      , MIN(ordering_id) min_ordering_id 
     FROM my_table 
     GROUP 
      BY grouping_id 
    ) y 
    ON y.grouping_id = x.grouping_id 
    AND y.min_ordering_id = x.ordering_id; 
+0

请问我可以让我知道如何将这个应用到我的查询上面?对不起,我没有太多的专业知识。 – user264953

+0

也许不是,但我认为你可以弄明白;-) – Strawberry

+0

好.. my_table = tbl_reco_index_contents,grouping_id = reco_index_content_code。什么是orders_id? – user264953