【问题标题】:sqlite combine select all from multiple columnssqlite combine 从多列中选择全部
【发布时间】:2013-03-30 16:17:21
【问题描述】:

如何在 SQLite 中将多个选择查询组合成一条语句?

SELECT * FROM Table1 WHERE condition1
SELECT * FROM Table2 WHERE condition2
SELECT * FROM Table3 WHERE condition3
...

【问题讨论】:

    标签: sql select


    【解决方案1】:

    使用UNION 组合三个查询的结果。

    UNION 将删除在最终结果的唯一行上留下的重复项。如果要保留重复行,请使用UNION ALL

    SELECT * FROM Table1 WHERE condition1 
    UNION
    SELECT * FROM Table2 WHERE condition2 
    UNION
    SELECT * FROM Table3 WHERE condition3
    

    警告:每个选择语句的列数(以及数据类型)必须匹配。

    更新 1

    根据您在下面的评论,您正在寻找JOIN

    SELECT  a.*, b.*, c.*
    FROM    table1 a
            INNER JOIN table2 b
                ON a.ColName = b.ColName
            INNER JOIN table3 c
                ON a.ColName = c.ColName
    -- WHERE    .. add conditions here ..
    

    如需进一步了解联接,请访问以下链接:

    【讨论】:

    • 遗憾的是,我所有的表都有不同的结构
    • 如果是这种情况,那么您至少需要选择一次重要的。您能否提供带有所需结果的简单记录,以便我们找到另一种方法?
    • 或者您可以为每个缺失的列添加“NULL as colname”。你没有说“结合”是什么意思。如果您描述您正在尝试做什么以及为什么,您可能会得到更有帮助的答案。
    • 我希望从 3 个表中检索所有数据(例如 id)以创建这样的结构:
    • 你能至少包括你的表的结构吗?
    【解决方案2】:

    你也可以查询也喜欢 SELECT * FROM users where bday > '1970-05-20' UNION ALL SELECT * FROM users where bday

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 2016-02-27
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多