Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql表列包含数据库名称->;是否从引用的数据库中选择事务?_Mysql_Reference - Fatal编程技术网

Mysql表列包含数据库名称->;是否从引用的数据库中选择事务?

Mysql表列包含数据库名称->;是否从引用的数据库中选择事务?,mysql,reference,Mysql,Reference,希望我说得够清楚了 我有一个mysql设置,其中我有一个中央数据库(名为central),它有一个accounts表,保存所有用户帐户,然后每个用户都有一个单独的数据库保存他们的事务 中央桌子看起来像这样: CREATE TABLE Central.accounts ( ID int UNSIGNED NOT NULL AUTO_INCREMENT, UserID int(10) NOT NULL, DatabaseRef varchar(20) ) 我想执行以下操作:

希望我说得够清楚了

我有一个mysql设置,其中我有一个中央数据库(名为central),它有一个accounts表,保存所有用户帐户,然后每个用户都有一个单独的数据库保存他们的事务

中央桌子看起来像这样:

CREATE TABLE Central.accounts (
    ID int UNSIGNED NOT NULL AUTO_INCREMENT,
    UserID int(10) NOT NULL,
    DatabaseRef varchar(20)
)
我想执行以下操作:从Central.accounts->DatabaseRef列引用的数据库中的Transactions表中获取所有行

SELECT * FROM [CA.DatabaseRef].Transactions T

JOIN Central.accounts CA ON CA.ID = T.UserID

WHERE CA.UserID = 2

这有可能吗?最终,我希望在一个查询中完成这项工作,而不是使用php。

您可以使用语句进行此类查询

当然,lasz部分不起作用,因为没有这样的数据库或表

为表“事务”选择拒绝给用户“u_1350201779”@“localhost”的命令 小提琴

CREATE TABLE accounts (
    ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserID int(10) NOT NULL,
    DatabaseRef varchar(20)
);
INSERT INTO accounts VALUES (NULL,2,'test');
SELECT DatabaseRef INTO @sql FROM accounts WHERE UserID = 2;
SELECT @sql;
| @sql | | :--- | | test |
SET @sql = CONCAT('SELECT * FROM ',@sql,'.Transactions T WHERE T.UserID = 2');
SELECT @sql;
| @sql | | :--------------------------------------------------- | | SELECT * FROM test.Transactions T WHERE T.UserID = 2 |
PREPARE test FROM @sql;
EXECUTE test;
SELECT command denied to user 'u_1350201779'@'localhost' for table 'Transactions'