Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 具有不同行的SQL内部联接?_Mysql_Sql_Sql Server - Fatal编程技术网

Mysql 具有不同行的SQL内部联接?

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

在本例中,如果在“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 = 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