`
orcl_zhang
  • 浏览: 244656 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

sql基础一定要学好

阅读更多
遇到这样的一个问题.看代码
在work_sheet的model中
  named_scope :working ,:conditions => ["qted = ? and start > ? ",4,DateTime.now]
  named_scope :starting,:conditions => "production_plans.state = 0", :include => :production_plan

#不报错
WorkSheet.working
#不报错
WorkSheet.starting
#报错
WorkSheet.starting.working

不明白为什么会这样?报错如下:
Mysql::Error: Column 'start' in where clause is ambiguous: SELECT `work_sheets`.* FROM `work_sheets` INNER JOIN `production_plans` ON `production_plans`.id = `work_sheets`.production_plan_id WHERE ((production_plans.state = 0) AND (qted = 4 and start > '2010-04-09 14:14:50' ))

sql跑了下也是报错,没有仔细研究,就拿去请教别人去了.ambiguous原来是模棱两可的意思.在worksheet和production_plan里都有start字段,然后关联后,就无法确认是哪个的start字段了.自己再改成这样,然后试了下.可以了.
named_scope :working ,:conditions => ["qted = ? and work_sheets.start > ? ",4,DateTime.now]
分享到:
评论
2 楼 orcl_zhang 2010-04-10  
让我们看看其他人是怎么做的.
>> WorkSheet.production_plan_state_equals(0)
  ProductionPlan Columns (1.4ms)   SHOW FIELDS FROM `production_plans`
  WorkSheet Load (0.5ms)   SELECT `work_sheets`.* FROM `work_sheets` INNER JOIN `production_plans` ON `production_plans`.id = `work_sheets`.production_plan_id WHERE (production_plans.state = 0) 
+----+-------+-------+-------+-------+------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+------+------+-------+-------+
| id | nu... | my... | cr... | up... | name | de... | de... | eq... | start | end   | re... | di... | note | qu... | pr... | rate | qted | ch... | de... |
+----+-------+-------+-------+-------+------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+------+------+-------+-------+
| 82 | GZ... | 105   | 20... | 20... | 下料   |       |       |       | 20... | 20... |       | 0     |      | 3     | 32    | 0.2  | 1    | 1     | 0     |
| 83 | GZ... | 105   | 20... | 20... | 下料   |       |       |       | 20... | 20... |       | 0     |      | 3     | 32    | 0.2  | 1    | 1     | 0     |
| 84 | GZ... | 105   | 20... | 20... | 下料   |       |       |       | 20... | 20... |       | 0     |      | 3     | 32    | 0.2  | 1    | 1     | 0     |
| 85 | GZ... | 105   | 20... | 20... | 下料   |       |       |       | 20... | 20... |       | 0     |      | 2     | 32    | 0.2  | 0    | 1     | 0     |
+----+-------+-------+-------+-------+------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+------+------+-------+-------+
4 rows in set
>> WorkSheet.qted_equals(2)
  WorkSheet Load (0.4ms)   SELECT * FROM `work_sheets` WHERE (work_sheets.qted = 2) 
=> []

至少在searchlogic里面,如果这样写的话,生成的named_scope,每个表无论是否和其他表发生关联,都会加上这样的一个表名.看来这样做是最保险的了.
1 楼 orcl_zhang 2010-04-09  
Robbin真是狠准快啊。这贴这么快就被打到新手贴了。因为正上班,草草就结贴了。本来还想等回去在补充下的,不过看来没机会了。等家里能上网了,在好好发一贴。je手机能登录了,感觉挺不错的。

相关推荐

    sql精品教程,看完轻易学好SQL

    SQL,全称Structured Query Language,是用于管理和处理关系数据库...综上所述,这个教程全面覆盖了SQL的基础到进阶知识,从创建表、数据操作、查询优化,到数据库的管理和用户权限控制,为学习SQL提供了系统性的指导。

    50个经典SQL查询语句

    信息化时代学好一门技术很有必要,这是学sql语言的最基础查询语句,多多理解你一定会有所感悟的。

    sql数据库 适合初学者

    在IT领域,数据库是至关重要的组成部分,特别是在...无论是开发人员、数据分析师,还是系统管理员,扎实的SQL基础都将对职业生涯大有裨益。所以,不论你是初学者还是希望巩固基础,现在就是开始探索SQL数据库的好时机。

    经典语句让你轻松学好SQL语言定义.pdf

    以下是一些SQL的基础知识,涵盖了创建与管理数据库、表、索引、视图以及执行各种查询。 1. **创建和删除数据库**: - `CREATE DATABASE` 语句用于创建新的数据库,如 `CREATE DATABASE database-name`。 - `DROP ...

    学好要的东西oracle基础看看可以的

    Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,...对于想要深入理解和使用Oracle的IT从业者来说,这些都是必不可少的知识点。通过深入学习和实践,可以有效地提高工作效率并确保数据库系统的稳定运行。

    从零开始学SQL Server

    要想学好SQL Server 2005,选择一本适合自己的入门书是非常重要的。本书从数据库基础开始,循序渐进地讲解了数据库对象编程及数据库应用系统开发,章节安排合理,由浅入深,通过生动的实例和详细的代码注释,带领...

    要学好java找一份工作

    要学好Java并找到一份相关工作,需要对整个学习过程有深入的理解和坚持不懈的努力。Java是一种广泛应用的编程语言,尤其在企业级应用开发中占据重要地位。以下将详细阐述学习Java的不同阶段及其关键知识点。 首先,...

    如何学好编程语言

    总之,学好编程语言,尤其是Java,需要一个系统的学习计划,从基础知识到高级技术,再到实战项目,每一步都不可或缺。通过精心规划学习路线,明确技术点,深入理解设计原理,重视学习过程中的注意事项,以及积极参与...

    如何学好JavaEE

    要学好JavaEE,首先需要掌握Java的基础语法。对于初学者来说,理解并熟练运用Java的I/O包、Util包以及Lang包至关重要。这些包包含了处理输入输出、实用工具类以及基本数据类型操作等功能的核心类和接口,是进行高级...

    oracle数据库基础知识(数据库程序设计)

    1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL, 但可以看懂它们,你就可以跳到2。否则请先学习一下数据库基础和SQL语言, 不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后...

    《SQL SERVER 2005 数据库设计》课程教学体会.pdf

    学好SQL Server 2005数据库是学习其他大型数据库系统的基础。 SQL Server 2005包含的重要组成部分是Transact-SQL语言,它是一种常用的数据库操作语言,具有广泛的应用性和强大的灵活性。学生在学习SQL Server 2005...

    plsql编程个人认为比较好的基础事例

    ### PL/SQL编程基础知识详解 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内置过程语言,它结合了SQL的数据操作能力与传统程序设计语言的过程控制功能,是一种非常强大的数据库端...

    21天学好JAVA

    《21天学好JAVA》是一本旨在帮助初学者在短时间内掌握JAVA编程基础的教程。在21天的学习过程中,读者将逐步理解JAVA语言的核心概念,掌握编程技巧,并建立起坚实的编程思维。本书以实践为导向,理论与实例相结合,...

    数据库SQL查询,最佳案例讲解

    在学习本课程的时候,一定要动手实现一个需求,写完了之后一定要多思考原理,并且看看是否有其他的方式实现,这样能快速和深入的学好本课程。 ? 课程收获: 在学习完本系列中所有的课程后,可以实现日常工作中绝大...

    如何学好ASP.NET

    对于想要学习ASP.NET的新手来说,了解并掌握其核心概念和技术至关重要。以下是一些关键知识点,将帮助你有效地学习ASP.NET。 1. **基础概念**:首先,你需要理解.NET框架,它是ASP.NET的基础,提供了类库、编译器和...

    oracle数据库基础知识.ppt

    1. 如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看懂它们,你就可以跳到2。 2. 要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:...

    初学者怎么样学好VF

    "怎样短时间学好VF.doc"这个文档可能会提供一些快速学习的技巧和实战案例,建议仔细阅读并按照其中的指导进行操作。 此外,理论与实践相结合,结合相关的书籍、在线教程和视频课程可以加快学习进度。例如,学习VF的...

    office编程之三天学好ADO

    《Office编程之三天学好ADO》是一门专为初学者设计的教程,旨在帮助学习者在短时间内掌握如何在Office环境中利用ADO(ActiveX Data Objects)进行数据操作。ADO是Microsoft开发的一个强大工具,用于访问和操作各种...

    SQL server 2000自学教程(PDG)

    sql server 2000是一本非常不错的数据库入门教程。在学习庞大复杂的2005之前,强烈建议你先从基础学起,从重点学起。2005是2000的扩展和延伸,所以学习好2000是学好2005的必要阶段,而本书正是你的最佳选择。

Global site tag (gtag.js) - Google Analytics