【问题标题】:SQLITE query, return records from multiple tables each joining their own metatableSQLITE 查询,从多个表返回记录,每个表都加入自己的元表
【发布时间】:2015-06-29 23:12:02
【问题描述】:

我正在为我的应用程序开发一个新的数据库后端以获得更大的灵活性。

我现在有四张表,而不是一张多列的大表;

  • 表“roms”(包含单列“名称”)
  • 表“romsmeta”(包含列“名称”、“标题”、“年份”)
  • 表“软件”(包含列“系统”和“名称”)
  • 表“softwaremeta”(包含列“系统”、“名称”、“标题”、“年份”)

所以现在我需要在查询中使用 JOIN 类型,但我的技能有点生疏。基本上,我想执行以下伪查询;

SELECT Title,Year from (roms INNER JOIN romsmeta,software INNER join softwaremeta) WHERE Title like '%enteredTitle%'

显然,这种语法是无效的。

什么查询会返回我正在寻找的结果?

提前致谢!

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    试试这个:

    SELECT rm.Title, rm.Year 
    from roms r
    inner join romsmeta rm
    on r.name = rm.name
    inner join software s
    on s.name = rm.name
    inner join softwaremeta sm
    on sm.name = rm.name
    WHERE rm.Title like '%enteredTitle%'

    【讨论】:

    • 嗯,这会返回“不明确的列名:标题:SELECT Title,Year”
    • 好的,我错过了 rm 前缀。它现在应该可以工作了。
    • 嗯,这会返回似乎是正确数量的结果(来自 table roms 和软件的结果),但 Title/Year 值都是相同的。
    • 也许你想要软件元表中的数据,然后将第一行从 rm.Title, rm.Year 改为 sm.Title, sm.Year
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    相关资源
    最近更新 更多