【发布时间】:2015-07-23 11:52:38
【问题描述】:
我正在尝试从查询中获取最后 3 行,但我不断收到此错误:
SQLSTATE[42S21]: 列已存在: 1060 Duplicate column name '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";
【问题讨论】:
-
我的猜测是
i或p有一个名为id的列 -
请显示您的数据库架构
-
select i.*, m.*, p.*中有重复项。仅列出您真正需要的列。 -
对@GordonLinoff 评论投了赞成票。在选择要输出的字段时,恕我直言,通配符从来都不是一个好主意,并且可能会导致大量资源使用或此类查询的不良行为