【问题标题】:Select Database name from another Database从另一个数据库中选择数据库名称
【发布时间】:2020-03-09 00:46:44
【问题描述】:

我有一个数据库,其中存储了几个表,如“Item1”、“Item2”、“Item3”等,还有一个名为“Items”的表。

在“Items”中有所有名称,因此您可以知道“Item1”、“Item2”等表中的值是什么。

现在我喜欢从例如选择数据。存储所有内部温度的表“Item2”。但是我喜欢通过 Items 表来访问它们,ID 存储在 Item 表中。请参阅表项。 “内部温度”的 ID 是 2,所以我喜欢从表 Item2

中获取数据

所以是这样的:

SELECT Value AS "Test"
FROM (SELECT concat('Item', ItemId) FROM Items WHERE ItemName = "Temperature Inside")

Item2

time   Value
............
1      58               
2      67              
3      25 
6      1             

项目

ItemId    ItemName 
......................
1         "Temperature Outside"
2         "Temperature Inside"              
3         "Power"             
4         "Voltage"             

【问题讨论】:

  • 抱歉,您想说什么?
  • 但是只有当我知道两个表的名称但我不知道它时,join才有效,因为我喜欢使用的表的名称存储在“Items”表中

标签: mysql


【解决方案1】:

如果我理解正确,您可以使用以下查询。您必须使用动态 SQL 来生成您的 select 查询。首先从 items 表中获取 id 并使用 concat 创建您的选择查询。最后使用PREPAREEXECUTE就可以得到需要的输出了。

select @var :=itemid from items where itemname='Temperature Inside';
set @sqltext := concat('select * from item',@var);
PREPARE stmt FROM @sqltext;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Check DEMO Here

【讨论】:

    猜你喜欢
    • 2019-12-02
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多