0

我是 RDBMS 的新手,我想从五个表中的一个中获取一行,并且表的名称是另一个表的一个字段的值。因此,我尝试将值存储在一个查询中的一个变量中,然后在名称存储在变量中的表中再次使用该值查询。我正在用 MySQL 编写查询。我在语法中遇到错误。

这是我正在编写的查询语句。

DECLARE @vcTemp VARCHAR(40)
SELECT unit_test_result.*, @vcTemp = unit_test.name
  FROM unit_test_result, unit_test
  WHERE unit_test_result.test_run_id = 3 && unit_test.id = unit_test_result.unit_test_id
SELECT @vcTemp.* FROM @vcTemp

但我收到以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE @vcTemp VARCHAR(40) SELECT unit_test_result.*, @vcTemp = unit_test.name”附近使用正确的语法

任何人都可以帮我语法吗?谢谢。

4

1 回答 1

0

SQL 不支持动态表名。如果这些查询是由使用其他语言的程序(即 PHP 脚本)运行的,那么最简单的方法是执行两个查询——一个获取表名,另一个获取实际数据。

但是,如果您被限制在 MySQL 中,可以使用存储过程来做您想做的事情。这是一个例子:http ://forums.mysql.com/read.php?98,126506,126598#msg-126598

于 2013-05-16T18:25:16.850 回答