加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 23:43:15 所属栏目:百科 来源:网络整理
导读:是否可以在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 WHE
是否可以在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;

它给了我错误:

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

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

谢谢

必须在FROM子句中使用子查询的结果作为源表进行进一步查询:
SELECT * FROM (SELECT ...),(SELECT ...)

但是,这将是一个cross join,这不是你想要的.

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

SELECT ChestGemEffects.Value,Effect.Name
  FROM ...
  ...
UNION ALL
SELECT WeaponGemEffects.Value,Effect.Name
  FROM ...
  ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读