从3个表中拉出的mySQL查询出错

时间:2009-08-01 22:19:58

标签: mysql

我的查询内容如下:

"SELECT config.*, utinfo.* userinfo.* "."FROM config, utinfo, userinfo "."WHERE config.cxid = utinfo.xid"."AND utinfo.uid = userinfo.id"

在添加

之前它工作正常
."AND utinfo.uid = userinfo.id"

最后部分。

更容易做到这一点?或者是我遗失的东西?

1 个答案:

答案 0 :(得分:5)

空格:

"WHERE config.cxid = utinfo.xid "
                               ^ - add space here

编辑:

由于单凭这不是问题,我会对你真正想要达到的目标做出有根据的猜测。在我看来,您试图选择utinfo中具有config ID的所有记录以及具有userinfo ID的记录。 INNER JOIN是解决此问题的最佳方式:

SELECT *
FROM utinfo
INNER JOIN config ON config.cxid = utinfo.xid
INNER JOIN userinfo ON userinfo.id = utinfo.uid

此外,在生产环境中,如果您在数据库中添加或删除列,我会远离SELECT *,因为它可能会破坏您的应用程序。