magento flat和eav表连接的不同
对于flat表,也就是普通的表,例如订单之类的sales_flat_order,这类型的连接,Collection连接
$table = Mage::getSingleton('core/resource')->getTableName('catalog_product_store');
$storetable = Mage::getSingleton('core/resource')->getTableName('core_store');
$collection ->getSelect()->joinLeft(
array('pstable' => $table),//表名称
'e.entity_id=pstable.product_id',//表连接条件
array('pstable.store_id as storeid')//选择出的字段
);
$collection ->getSelect()->joinLeft(
array('storetable' => $storetable),//表名称
'pstable.store_id=storetable.store_id',//表连接条件
array('storetable.name as storename')//选择出的字段
);
上述连接其实也适用于EAV模型的表,只是在grid过滤的情况下会出错。上述语句中
storetable.name as storename
其实是防止grid表中重复的索引,比如某一个表的索引列叫 'index' => 'name'。而这个时候选出的字段就需要起个另外的别名,通过尝试以后发现 上述 代码 是可以执行成功的,可以得到想要的结果。
对于eav模型的表连接,下述左连接来示例
$collection ->joinField('storeid',
'catalog_product_store',
'store_id',
'product_id=entity_id',
null,
'left');
$collection ->joinField('storename',
'core_store',
'name',
'store_id=storeid',
null,
'left');
上述的连接其实是进行了两次连接,是有特点的,第一次连接的storeid用来作为第二次关联的条件。这种eav专属的连接,grid是不会过滤出错的。
magento flat和eav表连接的不同的更多相关文章
- SQL多表连接查询(详细实例)
转载博客:joeleo博客(http://www.xker.com/page/e2012/0708/117368.html) 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:stud ...
- 关于Oracle表连接
表连接注意left join on与where的区别: select * from dept; select * from emp; select * from emp a right outer j ...
- SQL多表连接查询
SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...
- oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图
多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...
- Access数据库多表连接查询
第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * fro ...
- PostgreSQL-join多表连接查询和子查询
一.多表连接查询 1.连接方式概览 [inner] join 内连接:表A和表B以元组为单位做一个笛卡尔积,记为表C,然后在C中挑选出满足符合on 语句后边的限制条件的内容. left [outer] ...
- SQL 中不同类型的表连接
http://www.linuxidc.com/Linux/2012-08/68035.htm 1.简介 在关系型数据库中,join操作是将不同的表中的数据联合在一起时非常通用的一种做法.首先让我们看 ...
- SQL表连接查询(inner join、full join、left join、right join)
SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...
- SQL的多表连接查询
SQL的多表连接查询 多表连接查询具有两种规范,SQL92和SQL99规范. SQL92规范支持下列多表连接查询: (1)等值连接: (2)非等值连接: (3)外连接: (4)广义笛卡尔积: SQL9 ...
随机推荐
- LightOJ 1259 Goldbach`s Conjecture 水题
不想说了 #include <cstdio> #include <iostream> #include <ctime> #include <vector> ...
- Python能做什么
There should be one--and preferably only one --obvious way to do it. 首先,对于小白来说,Python比较容易上手.额就是个活 ...
- SQL Server查询性能优化——创建索引原则(一)
索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页 就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索 ...
- Eclipse 卸载插件
直奔主题,不罗嗦! 1.help 2.about eclipse 3. 点击Installation Details 4.选中你安装的插件点击Uninstall... 5.从新启动,OK.
- puppet_list
- ios真机调试详细步骤
•真机调试的主要步骤 1.登录开发者主页 2.生成cer证书:cer是一个跟电脑相关联的证书文件,让电脑具备真机调试的功能 3.添加App ID:调试哪些app? 4.注册真机设备:哪台设备需要做真机 ...
- Linux学习笔记——软件包管理
1.RPM包的管理 RPM软件包的一个例子: sudo-1.7.2p1-5.el5.i386.rpm 这个rpm包名包括软件名sudo,版本号1.7.2p1,发行号5.el5,和硬件平台i386 (1 ...
- 模拟等待事件row lock waits
是索引块分裂引起的锁等待,往往与enq: TX - index contention 伴随产生,enq:TX - index contention的解释. Waits for TX in mode 4 ...
- iOS从生成证书到打包上架-01(详细2016-10最新)
今天项目上架成功,在此小结一下这个过程,希望对这个流程有疑惑的小伙伴少走弯路(大神请忽略此文) 关于证书是什么,请自行百度,Google,这里直接上流程. 1.首先打开苹果开发者网站,Apple De ...
- 动态添加DOM时,绑定的click事件会重复执行
最近因为业务需求,需要重写window的alert和confirm弹窗,但是每次显示的提示按钮不相同,所有每次打开的弹窗都需要重写生成,但是对于相同的按钮会保留上次创建时的click事件,所以当你创建 ...