php - 从 mysql 查询中获取最后 3 行时出错

标签 php mysql pdo

我试图从查询中获取最后 3 行,但我一直收到此错误:

SQLSTATE[42S21]: 列已存在: 1060 重复的列名 'id'

拜托,我做错了什么?

$sql = "SELECT * FROM (SELECT i.*, m.*, p.* FROM message i JOIN 
members m ON m.id = i.sender_id JOIN profile_photos p 
ON p.member_id = m.id   WHERE (receiver_id = :receive 
AND sender_id = :sent OR receiver_id = :sent AND sender_id = :receive) 
ORDER BY date DESC LIMIT 3) t ORDER BY date ASC";

最佳答案

您可能已经在多个表中拥有 ID 列,并且选择语句 SELECT i.*, m.*, p.* 将它们全部列出。

要么选择你想要的特定列

SELECT i.id, i.col1, m.col2, p.col3 ...

或者,使用像这样的列别名

SELECT i.id as IID, m.*, p.id as PID

关于php - 从 mysql 查询中获取最后 3 行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31586575/

相关文章:

php - Mysql数据库没有更新

MySQL 仅在 null 时才将 double 转换为 varchar

php - 从 sqlite pdo 获取数组与 php 连接查询

php - 从Docker容器向PHP添加扩展

php - 从 Android 中的 editText 检索阿拉伯文本

MySql 在插入更新之前触发计数

PHP fatal error ,调用未定义的方法 mysqli_stmt::get_result()

PHP 在 while fetch 循环内查询

php - 如何在 Visual Studio Code 的注释中禁用 IntelliSense?

"="的 MySQL 通配符 - 有没有