【问题标题】:VIEW creation not working after porting from MySql to SQLite code从 MySql 移植到 SQLite 代码后,VIEW 创建不起作用
【发布时间】:2014-07-30 13:21:21
【问题描述】:

我正在移植一个应用程序,并决定在 SQLite 中以镜面反射方式移植其数据库。 所有表格都工作正常,但以下视图:

VIEW `view_type_questions` AS 
select `questions`.`id` AS `id_question`,
      `type_modules`.`id` AS `id_type`,
      `type_modules`.`description` AS `type_questions`
from (`questions` left join (`modules` left join `type_modules`
 on((`modules`.`id_type` = `type_modules`.`id`)))
 on((`questions`.`id_module` = `modules`.`id`)))  

我用同样的方式翻译了没有顶点('):

 VIEW view_type_questions AS select questions.id AS
 id_question,type_modules.id AS
 id_type,type_modules.description AS type_questions
 from (questions left join (modules left join type_modules
 on((modules.id_type = type_modules.id)))
 on((questions.id_module = modules.id)))  

给我一​​个奇怪的错误,因为当我尝试执行此查询时,我得到以下信息:

错误处理 SQL:无法准备语句(1 没有这样的列:type_modules.id)

(我 100% 确定所有的表都包括 type_modules)

  1. 有什么方法可以进一步调查?
  2. 创建视图有什么不同吗 mysql 和 sqlite 的区别?

【问题讨论】:

  • 请向我们展示您的type_modules 表的创建表语句。
  • 在 SQLite 3.8.5 中为我工作。

标签: mysql sql sqlite view


【解决方案1】:

当您在连接周围使用多余的括号时,某些 SQLite 版本会出现问题。 只需删除它们(为了 Zarquon,请正确格式化查询):

CREATE VIEW view_type_questions AS
SELECT questions.id AS id_question,
       type_modules.id AS id_type,
       type_modules.description AS type_questions
FROM questions
LEFT JOIN modules ON questions.id_module = modules.id
LEFT JOIN type_modules ON modules.id_type = type_modules.id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2014-06-23
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多