这可能会令人困惑,但我想要做的是一个基本的select distinct列x限制3,问题是它返回3行,但我只想从一个不同的列中获取所有值。
id|columnx
1 |here
2 |here
3 |Idontwant
4 |Apple所以我想要一个返回1和2的查询。问题是columnx可以是任何东西,我不能只说where columnx = 'here‘。
limit 3之所以起作用,是因为它被硬编码到我的C#应用程序中。问题是我还设置了一个基于columnx的哈希集,我必须让所有记录的columnx都是静态的。然而,对于我放在一起的每个查询,在我的限制下,我会在columnx中返回2个值,这是不同的值,但是,我每个查询只能有不同的columnx值。
不,我想要的是属于columnx的所有值,在本例中,columnx ='here',当我执行distinct时,我想要返回的是第一个distinct结果,而不是‘in want’或'apple‘,而不管限制是什么。
这是一个查询,它可以正常工作。
SELECT id,columnx
FROM sites where columnx= (select distinct columnx from sites limit 1) limit 3发布于 2011-07-15 08:43:24
这听起来像是您想要三个不同的列x值的id值。是这样的吗?试试这个:
SELECT id, columnx
FROM table AS t1
JOIN (
SELECT DISTINCT(columnx) AS columnx
LIMIT 1
) AS t2 ON (t1.columnx = t2.columnx);我还想知道您是否需要一些ORDER BY,但是您的问题没有提到这一点,所以我省略了它--本质上意味着您将获得三个半随机的列x值。
发布于 2011-07-15 08:36:33
老实说,我也不知道您在问什么,但听起来您想返回在columnx中有重复值的那些行的in (将结果限制为3)。
SELECT id, columnx
FROM tablename
GROUP BY columnx
HAVING ( COUNT(columnx) > 1 )
LIMIT 3https://stackoverflow.com/questions/6701491
复制相似问题