【问题标题】:Query won't run on localhost查询不会在本地主机上运行
【发布时间】: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 实时服务器上有效。只是不在我的本地主机上,即使我只是去复制两个数据库以确保它们是最新的。
  • 仅供参考,感谢格式化

标签: mysql sql xampp


【解决方案1】:

这可能是你想要得到的:

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 = `user_details`.securitytemplate 
ORDER BY 
  fullname ASC

【讨论】:

  • 完美!这行得通。不知道为什么它在实时服务器上工作,但无论如何都会更新它。谢谢。
  • 希望对您有所帮助。
猜你喜欢
  • 2017-09-06
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 2020-11-04
  • 2020-02-25
  • 2020-04-20
  • 2021-09-07
  • 1970-01-01
相关资源
最近更新 更多