mysql - 带有 DISTINCT 的 PHP7/mySQL 查询加上显示 $row 中的其他列

标签 mysql select distinct php-7

我有以下 file_tbl 表: id fname fdescription ftype fsize wbsid 时间戳

而且我不想选择具有相同 fname 和 wbsid 的重复行,但是应该选择相同的 fname 和不同的 wbsid。

我的查询:

$stmt = $pdo->prepare("SELECT DISTINCT(fname), wbsid from file_tbl ORDER BY wbsid ASC");
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    echo'<hr>file-name:'.$row['fname'];
    echo'<br>file-description:'.$row['fdescription'];
    echo'<br>file-wbs-id:'.$row['wbsid'];
    echo'<br>file-wbs-id:'.$row['timestamp'];
    }
  • 这将导致通知: undefined index :fdescription,时间戳在...上 线...

查询适用于 distinct,但我需要获取所有列 - 我不知道如何在不破坏查询的情况下选择所有列。 (我用 JOIN 和 GROUP BY 做了很多试验,但对我没有任何作用——例如,这个解决方案不符合我的要求: Select distinct column along with some other columns in MySQL )

注意:我通过 PHP 创建了时间戳,如果有任何兴趣,它是一个 (varchar)。

我现在的方法是将来自同一个表的两个 SELECT 查询放在一起——不幸的是我还不能完成这个。 (INNER JOIN; LEFT JOIN; 某些类型的子查询 ( http://www.w3resource.com/mysql/subqueries/index.php ) ...

编辑:现在可以使用一个可用的 sql-fiddle - 它在那里工作正常,但在我自己的 LAMP 堆栈上不行: http://sqlfiddle.com/#!9/95bad/1 或者,使用 InnoDB 和 latin1 复制粘贴原始文件: http://sqlfiddle.com/#!9/b3bce0/2

最佳答案

您正在尝试使用您未选择的列 (fdescription)。

尝试将 fdescription 添加到您的 SELECT 子句中:

SELECT DISTINCT(fname), wbsid, fdescription
FROM file_tbl
ORDER BY wbsid ASC

如果这没有产生您想要的结果,请尝试使用分组:

SELECT fname, wbsid, fdescription
FROM file_tbl
GROUP BY fname, wbsid
ORDER BY wbsid ASC

关于mysql - 带有 DISTINCT 的 PHP7/mySQL 查询加上显示 $row 中的其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483236/

相关文章:

mysql - 'generated' 列上的 SQL SUM

Mysql 仅选择最新日期的不同记录

mysql - 哪个更好? mysql 的 LIKE 或 REGEXP?

php - MySQL 尝试以访问权限禁止的方式访问套接字

php - 仅显示 Mysql 数据库中的月份

oracle - Oracle是否等效于SQL Server STUFF函数?

sql-server-2008 - 在同一个选择中使用别名

MySQL GROUP_CONCAT 排除组值

mysql - 具有不同的三个不同表的 SQL 查询

mysql - 在node.js中转义mysql查询返回错误mysql未定义