-1

我有很多表,其中一些有“项目”列。我想进行简单的查询,这使我可以检查在哪些表或哪些表中可以找到我想要的带有编号的项目。我已经阅读了一些关于变量的信息并做了这个:

SET @Item_id =(there i put number) ;
select * from table1 where item=@Item_id;
select * from table2 where item=@Item_id;
select * from table3 where item=@Item_id;
select * ...(other tables)

问题是我的 DBMS 将显示每个表的结果选项卡,搜索是否成功并不重要。如何更新代码以仅显示带有结果的表格?

SET @Item_id = 29434;
SELECT
(select distinct item from creature_loot_template where item=@Item_id)  as table1
(select distinct item from gameobject_loot_template  where item=@Item_id) as table2
(select distinct item from item_loot_template where item=@Item_id) as table3
4

2 回答 2

0

你可以尝试这样的事情:

SET @Item_id =(the Id you want to check) ;
SELECT
(select distinct item from table1 where item=@Item_id) as table1
(select distinct item from table2 where item=@Item_id) as table2
(select distinct item from table3 where item=@Item_id) as table3
...

这样,您应该有这样的输入:

  • 表 1 表 2 表 3
  • null 空项目

因此,您将知道您在哪个表中找到了您的项目。

于 2013-10-16T13:31:41.333 回答
0

这可能不完全符合您的要求,但对于这样的实例,我通常使用 union 选项将所有查询的结果转储到一个表中。为了显示它来自哪个查询或源表,我制作了一个带有字符串常量的假列。

SET @Item_id =(there i put number) ;
select 'table1', * from table1 where item=@Item_id union
select 'table2', * from table2 where item=@Item_id union
select 'table3', * from table3 where item=@Item_id;
于 2013-10-15T01:06:59.537 回答