【发布时间】:2019-02-12 15:23:30
【问题描述】:
我有这个查询,它从主数据库中的主表和使用联接的用户数据库中提取数据。
SELECT
`user_details`.`id` AS `masterid`,
`user_details`.`emailaddress`,
`user_details`.`is_login` as `userstate`,
`user_details`.`fullname` as fullname,
`user_details`.`securitytemplate`,
`user_details`.`registered`,
`user_details`.`isactive`,
`users`.`id` AS `userid`,
`users`.`profilepicture` AS `userpic`,
security.templatename
FROM
(SELECT * FROM `gs_master`.`user_details`
WHERE `gs_master`.`user_details`.`db_identifier`= 136) AS `user_details`
LEFT JOIN gs_db_136.`users`
ON `user_details`.`emailaddress` = `users`.`email`
JOIN gs_db_136.`security_templates` AS security
ON security.id = `gs_master`.`user_details`.securitytemplate
ORDER BY
fullname ASC
奇怪的是它在我的 Centos 机器上运行,但不能在我的本地主机上运行。我已经更新了数据库并且表都存在。如果我直接在 localhost 表上查询我会得到一个结果,所以我不确定它可能是什么?我猜这一定与不同机器上允许的语法有关?
我得到的错误是:
#1054 - “on 子句”中的未知列“gs_master.user_details.securitytemplate”
非常感谢任何帮助。
【问题讨论】:
-
只是您错过了表
user_details中的列securitytemplate验证并修复它。您应该删除数据库选择部分“gs_master”。如果您在那里运行查询 -
gs_master&user_details是两个表,您必须指定从哪个表中获取列securitytemplate -
改用 qub-query 别名,即
user_details.securitytemplate。 -
gs_master 是数据库,user_details 是数据库中的表,security_template 是该表中的列。它肯定在那里,我可以编写一个简短的查询来直接从该表和列中提取结果。请记住,我是说这个查询在我的 Centos 实时服务器上有效。只是不在我的本地主机上,即使我只是去复制两个数据库以确保它们是最新的。
-
仅供参考,感谢格式化