SQLite中的一个Query中的多个Select语句

The*_*per 6 sqlite

是否可以在SQLite中的一个查询中运行多个select语句?

如:

SELECT ( 
           SELECT ChestGemEffects.Value,
                  Effect.Name
             FROM ChestGemEffects
                  INNER JOIN Effect
                          ON ChestGemEffects.EffectId = Effect.Id
                  INNER JOIN Gems
                          ON ChestGemEffects.GemId = Gems.Id
            WHERE ( Gems.[Key] = 'SG1' )  
       ) 
       AS ChestEffects,
       ( 
           SELECT WeaponGemEffects.Value,
                  Effect.Name
             FROM WeaponGemEffects
                  INNER JOIN Effect
                          ON WeaponGemEffects.EffectId = Effect.Id
                  INNER JOIN Gems
                          ON WeaponGemEffects.GemId = Gems.Id
            WHERE ( Gems.[Key] = 'SG1' )  
       ) 
       AS WeaponEffects,
       ( 
           SELECT OthersGemEffects.Value,
                  Effect.Name
             FROM OthersGemEffects
                  INNER JOIN Effect
                          ON OthersGemEffects.EffectId = Effect.Id
                  INNER JOIN Gems
                          ON OthersGemEffects.GemId = Gems.Id
            WHERE ( Gems.[Key] = 'SG1' )  
       ) 
       AS OthersEffects;
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

'执行查询时出错:只有一个结果允许作为表达式一部分的SELECT'

我的表达式有问题还是SQLite不支持?

谢谢

CL.*_*CL. 13

必须在FROM子句中使用子查询的结果作为源表进行进一步查询:

SELECT * FROM (SELECT ...), (SELECT ...)
Run Code Online (Sandbox Code Playgroud)

但是,这将是一个交叉连接,这不是你想要的.

要只附加多个表(具有相同的列数),请使用UNION ALL:

SELECT ChestGemEffects.Value,
       Effect.Name
  FROM ...
  ...
UNION ALL
SELECT WeaponGemEffects.Value,
       Effect.Name
  FROM ...
  ...
Run Code Online (Sandbox Code Playgroud)