mysql - SQL INNER JOIN 与 DISTINCT 行?

标签 mysql sql sql-server

SELECT collections.title, collections.uniqueID, uploads.uniqueID as thumb 
FROM collections 
INNER JOIN uploads ON collections.uniqueID = uploads.uploadGroup 
WHERE collections.owner = @owner

在这种情况下,如果我在“上传”中有 3 行具有匹配的 uniqueid/uploadgroup(如集合中的 3 次上传),这会返回 3 行。

我正在寻找的是每个 DISTINCT COLLECTIONS.UNIQUEID 的一行 - 这可能吗?

所以当集合有

1 | title | idhere

和上传有

1 | uniqueID1 | idhere
2 | uniqueID2 | idhere
3 | uniqueID3 | idhere

我正在回来

1 | title | uniqueID1
2 | title | uniqueID2
3 | title | uniqueID3

当我想要返回的只是

1 | title | uniqueID1

最佳答案

如果您需要上传表中的一个简单的不同列表,那么您可以这样做:

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

关于mysql - SQL INNER JOIN 与 DISTINCT 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9489966/

相关文章:

sql - 使用 Access + Subquery 重新格式化数据

java - 插入sql未知字段

sql-server - 用户定义的函数 sql,关键字 'return' 附近的语法不正确

mysql - 转义 '%' 字符时出现问题

mysql - 如何从多表条件求和查询中仅选择非零值

php - 执行包含两个 SELECT 查询的 PDO 语句的结果是什么?

mysql - 如何将表1的每条记录与表2的几条记录连接起来?

sql - 具有存储库模式的抽象

sql-server - 使 SQL 2016 中的程序集在 SQL 2017 中工作(例如 : Calling Math Parser from SQL Server 2017)

java - 在 java 中缓存(可能)数据库中更改的值