2016-01-17 62 views
-2

我想要做的是从table1中选择每个不同的column1值,然后从上面返回的那些行中选择所有列。这可能吗?MYSQL嵌套从同一个表中选择查询

我到目前为止,然而,什么都不会返回:

SELECT * FROM (SELECT DISTINCT column1 FROM table1)

我想过把一个独特/不同的限制条款where查询中:

SELECT * FROM table1 WHERE some_unique_determiner column1

任何想法,我可以去实现所需的输出?

+0

样本数据和预期结果将有助于我们更好地理解。我相信你想在每个组中找到第一个/最后一个记录 –

+0

我不明白你想在这里实现什么!对我来说,似乎你所描述的结果与'select * from table'相同# – Shadow

+0

对于问题的提出方式,我表示歉意,但我是一个初学者。但我认为我已经达到了预期的产出,感谢@ VR46,他指出我的方向正确。我需要对其进行分组 – ethane

回答

-1

在你的下一个职位,这将是更好,如果你发布你的表结构,输入所需出来放那么这将是我们更容易了解。

如果我没理解,有两个选项之一:

要么你有重复,要消除他们,让您的正确的查询应该是

select distinct COLUMNa,COLUMNb,COLUMNc... ETC 

将下降重复(即整行都是一样的)。

或者你想消除具有相同列1的行,并且如果所有其余部分相同或不相同则无关紧要。 在这种情况下,您需要告诉我们您希望保留哪一个结果,最新的一个,旧的,随机的ETC ..因为现在不可能让您选择所有列后面的查询不同的,因为所有的重复将像这样返回:

SELECT * FROM TABLE WHERE COLUMN1 IN(SELECT DISTINCT COLUMN1 FROM TABLE) 

这是一个错误的查询,因为它没有做任何事情。

+0

将来会做。一个简单的'... GROUP BY column1'完成了返回不同的'column1'值的技巧 – ethane

+0

@ VR46我知道,这就是我说的,它不正确,因为它没有做任何事情,它等于select * from表。我想向他解释他的请求现在完全正确 – sagi

0

好,回答我自己的问题。我需要做的是按column1对数据进行分组,而不使用嵌套查询。非常感谢@ VR46的帮助。

SELECT * FROM table1 GROUP BY column1

返回的所有列从每个唯一值从COLUMN1

+1

您正在使用明确记录为产生“不确定”结果的MySQL(mis)功能。你不应该在'select'中有没有聚合的列,也不应该在'group by'中。 –