使用简单输出从许多表中检索数据

时间:2016-05-15 21:48:19

标签: mysql sql

如果我的表具有相似的结构(具有相同的列),但信息不同,我可以在与简单的MySQl查询(SELECT * FROM table where Name="Boo";)相同的输出中检索它的数据吗?

例:

SELECT * FROM Weapon, Armor, Helm, Bomb, Potion where Name="Boo";

RESULT

   ID    Name    Position.X    Position.Y        Item     TableName
   23    Boo       3                0           Gun        (Weapon)
   11    Boo       2                1           Cloth      (Armor)
   74    Boo       0                4           Tunic      (Armor)
   119   Boo       7                5           Coif       (Helm)
   9     Boo       1                6           Crown      (Helm)
   81    Boo       3                2           Grenade    (Bomb)
   44    Boo       8                1           Grenade    (Bomb)
   32    Boo       0                6           Small      (Potion)
   98    Boo       6                4           Big        (Potion)

我有一套带有一组表格的系统(如8),在某些情况下,它们具有完全相同的结构,而在其他情况下,它略有不同(一个或两个不同的列)。

每个表都存储有关用户项目及其存储位置的信息。

我试过了INNER JOIN,但结果很糟糕。

1 个答案:

答案 0 :(得分:1)

如果表Weapon, Armor, Helm, Bomb, Potion具有完全相同的结构,您可以使用Union

  SELECT * FROM Weapon where Name="Boo" 
  union  
  SELECT * FROM Armor where Name="Boo"         
  union 
  SELECT * FROM Helm where Name="Boo"       
  union  
  SELECT * FROM Bomb where Name="Boo"       
  union  
  SELECT * FROM Potion  where Name="Boo" ;     

否则,您可以为每个选择设置正确的列名。 在union子句中,列必须具有相同的类型和相同的数字