Mysql 具有不同行的SQL内部联接?
在本例中,如果在“uploads”中有3行具有匹配的uniqueid/uploadgroup(如集合中的3个uploads),则返回3行 我要找的是每个不同的集合对应一行。UNIQUEID-这可能吗 那么,当集合Mysql 具有不同行的SQL内部联接?,mysql,sql,sql-server,Mysql,Sql,Sql Server,在本例中,如果在“uploads”中有3行具有匹配的uniqueid/uploadgroup(如集合中的3个uploads),则返回3行 我要找的是每个不同的集合对应一行。UNIQUEID-这可能吗 那么,当集合 SELECT collections.title, collections.uniqueID, uploads.uniqueID as thumb FROM collections INNER JOIN uploads ON collections.uniqueID = uploa
SELECT collections.title, collections.uniqueID, uploads.uniqueID as thumb
FROM collections
INNER JOIN uploads ON collections.uniqueID = uploads.uploadGroup
WHERE collections.owner = @owner
并且上传已经完成
1 | title | idhere
我现在回来了
1 | uniqueID1 | idhere
2 | uniqueID2 | idhere
3 | uniqueID3 | idhere
当我只想回来的时候
1 | title | uniqueID1
2 | title | uniqueID2
3 | title | uniqueID3
这里有一种方法(仅限sql server):
如果您需要上传表中的一个简单的不同列表,那么您可以这样做:
SELECT collections.title, collections.uniqueID, uploads.uniqueID as thumb
FROM collections
CROSS APPLY (
SELECT TOP 1 *
FROM uploads
WHERE collections.uniqueID = uploads.uploadGroup
ORDER BY uploads.uniqueID -- not required, can be changed to any column you want
) uploads
为什么
1 | title | uniqueID1
不是1 | title | uniqueID3
?这类决定有何标准?PS:您需要选择mysql
或SQLServer
。解决方案将是特定于供应商的,您可以按标题分组,也可以选择前1行。你必须做出决定。
SELECT collections.title, collections.uniqueID, uploads.uniqueID as thumb
FROM collections
CROSS APPLY (
SELECT TOP 1 *
FROM uploads
WHERE collections.uniqueID = uploads.uploadGroup
ORDER BY uploads.uniqueID -- not required, can be changed to any column you want
) uploads
SELECT collections.title, collections.uniqueID, uploads.uniqueID as thumb
FROM collections
INNER JOIN (SELECT DISTINCT uniqueID FROM uploads) uploads ON collections.uniqueID = uploads.uploadGroup
WHERE collections.owner = @owner
SELECT collections.title, collections.uniqueID, min(uploads.uniqueID) as thumb
FROM collections
JOIN uploads ON collections.uniqueID = uploads.uploadGroup
WHERE collections.owner = @owner
GROUP BY collections.title, collections.uniqueID