执行此查询时:
SELECT * FROM (SELECT `db` FROM site WHERE `url`='$site') . smspq
我收到此错误:
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'附近使用正确的语法。 smspq'在第1行
此查询有效:
SELECT * FROM `database` . `table`
为什么?
答案 0 :(得分:1)
也许您想在子查询上添加别名,如果是这样,请将.
替换为AS
,或者只删除.
AS
可选
SELECT *
FROM (SELECT `db`
FROM site
WHERE `url`='$site') smspq
答案 1 :(得分:0)
这不是SQL的工作方式。您必须清楚地说明您希望在哪个数据库中使用哪个表。
您可以通过
设置最喜欢的数据库USE mydatabase;
并且对表的每个请求都将传递给该数据库。
SELECT * FROM mytable;
SELECT * FROM mydatabase.mytable; -- same as above because of USE mytable;
唯一的方法是使用Prepare and Execute(查看文档),但是使用普通命令(SELECT,UPDATE,...)就无法达到预期的目标
更新
您必须拆分查询:
第一次查询
USE mycommondb;
SELECT `db` FROM site WHERE `url`='$site';
第二
USE $db_from_site;
SELECT * FROM table;
(因为$我认为它将从php调用; o))