-2

当我执行此查询时:

SELECT * FROM (SELECT `db` FROM site WHERE `url`='$site') . smspq

我收到此错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '. 第 1 行的 smspq'

但是,此查询有效:

SELECT * FROM `database` . `table`

为什么?

4

2 回答 2

1

也许您想在子查询上添加别名,如果是这样,替换.AS或仅删除.asAS可选的

SELECT * 
FROM (SELECT `db` 
      FROM site 
      WHERE `url`='$site')  smspq
于 2012-10-28T06:01:22.457 回答
0

这不是 SQL 的工作方式。您必须清楚地说明您喜欢在哪个数据库中工作的表。

您可以通过以下方式设置最喜欢的数据库

USE mydatabase;

并且对表的每个请求都将传递到该数据库。

SELECT * FROM mytable;
SELECT * FROM mydatabase.mytable; -- same as above because of USE mytable;

唯一的方法是使用 Prepare 和 Execute(查看文档),但是使用普通命令(SELECT、UPDATE、...)您无法以这种方式达到您想要的目标

更新

您必须拆分查询:

第一次查询

USE mycommondb;
SELECT `db` FROM site WHERE `url`='$site';

第二:

USE $db_from_site;
SELECT * FROM table;

(因为 $ 我认为它将从 php 调用;o))

于 2012-10-28T06:12:14.083 回答