MYSQL显示错误:每个派生表必须有自己的别名在PHP MYSQL中。

13 浏览
0 Comments

MYSQL显示错误:每个派生表必须有自己的别名在PHP MYSQL中。

Possible Duplicate:每个派生表都必须有自己的别名\n大家好,我想以一种方式获取表格记录,以便可以通过组合一个表的两个结果来显示结果。在我的表“updatez”中,我将所有用户的更新(friends表存储了用户对朋友的可访问性)和更改者的更新(更改者表存储了用户对更改者的可访问性)存储在这个表中。\n在这里,我想要显示所有朋友和更改者的更新(如果他们已经被批准),按照创建时间和顺序0,5排序...\n是否有其他更简单的解决方案来完成这个代码?\n任何形式的帮助将不胜感激。\n提前感谢。\nTim

0
0 Comments

MYSQL显示错误::每个派生表必须有自己的别名 om PHP MYSQL

问题的原因是在子查询中没有添加别名。解决方法是在子查询中添加别名。

以下是修复后的代码:

SELECT *
FROM (
        SELECT M.updt_id AS updt_id,
                M.user_id_fk AS user_id_fk,
                M.updates AS updates,
                M.created AS created,
                M.uploads AS uploads
        FROM updatez M
        WHERE M.user_id_fk = friends.friendA
                AND friends.friendB = $USER
        UNION
        SELECT A.updt_id AS updt_id,
                changer_id_fk AS changer_id_fk,
                A.updates AS updates,
                A.created AS created,
                A.uploads AS uploads
        FROM updatez A
        WHERE A.changer_id_fk = changer.changer_id
                AND changer.user_id = $USER
        ) derivedTable
ORDER BY created DESC 
LIMIT 0, 5

感谢您的帮助,但是现在我遇到了一个我不理解的错误,错误是#1054 - 在'where'子句中未知列'updatez.user_id_fk'。

由于您在updatez表上提供了别名,因此您需要使用别名,例如m.user_id_fk。

顺便问一下,friends和changer表在哪里?

谢谢!太好了,问题解决了。你真的很棒,你节省了我很多时间。再次非常感谢!

0