好的,我需要创建一个与这个MySQL查询相同的SQL查询。
SELECT DISTINCT userID
FROM gallery
ORDER BY userID ASC
LIMIT 0, 3我现在拥有的SQL查询如下所示,但是它不会执行相同的工作,因为第二行仍然有userID
SELECT DISTINCT TOP 3 userID
FROM gallery
WHERE imageID NOT IN (
SELECT TOP 1 imageID
FROM gallery
ORDER BY userID
)
ORDER BY userID;这张桌子看起来像这样
imageID userID albumID
---------------------------
1 user1 2008
2 user1 2008
3 user1 2008
4 user1 Wild Fees
5 user1 Wild Fees
6 user1 Wild Fees
7 user1 Wild Fees
8 user1 Billfish 15000
9 user1 Billfish 15000
10 user1 Billfish 15000
11 user1 Billfish 15000
12 user1 2009
13 user1 2009
14 user1 2009
15 user2 New Album Name 001
16 user2 New Album Name 001
17 user2 New Album Name 001
18 user2 New Album Name 001
19 user2 New Album Name 001
20 user2 New Album Name 001
21 user2 New Album Name 001
22 user2 New Album Name 001
23 user2 New Album Name 001
24 user2 New Album Name 001
25 user2 New Album Name 001
26 user3 qweee
27 user3 qweee
28 user3 qweee
29 user3 qweee===编辑===这个特定SQL的预期输出是
|userID|
--------
|user2 |
|user3 |发布于 2014-02-27 12:45:08
在2012年使用新的偏移功能:
SELECT DISTINCT userID
FROM gallery
ORDER BY userID ASC
OFFSET 0 ROWS
FETCH NEXT 3 ROWS ONLY; 发布于 2014-02-27 12:51:42
我没有使用MYSQL,所以不确定MYSQL查询是否跳过第一行。PLease再查一遍。
如果你真的想拿出顶级用户的id,你可以试试这个。
从图片库选择不同的前3位userID,其中userID NOT IN (按userID从图片库中选择前1位userID )按userID排序;
谢谢
发布于 2014-02-27 11:53:36
试试这个版本:
SELECT TOP 3 userID
FROM gallery
GROUP BY userID
ORDER BY userID ASC ;编辑:(基于获得2-4行而不是1-3行)
在Server 2012中,可以使用offset和fetch
SELECT userID
FROM gallery
GROUP BY userID
ORDER BY userID ASC
OFFSET 1 ROWS FETCH NEXT 3 ROWS ONLY;https://stackoverflow.com/questions/22067632
复制相似问题