对于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表连接的不同的更多相关文章

  1. SQL多表连接查询(详细实例)

    转载博客:joeleo博客(http://www.xker.com/page/e2012/0708/117368.html) 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:stud ...

  2. 关于Oracle表连接

    表连接注意left join on与where的区别: select * from dept; select * from emp; select * from emp a right outer j ...

  3. SQL多表连接查询

    SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图如下: 表2:course  截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...

  4. oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图

        多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...

  5. Access数据库多表连接查询

    第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * fro ...

  6. PostgreSQL-join多表连接查询和子查询

    一.多表连接查询 1.连接方式概览 [inner] join 内连接:表A和表B以元组为单位做一个笛卡尔积,记为表C,然后在C中挑选出满足符合on 语句后边的限制条件的内容. left [outer] ...

  7. SQL 中不同类型的表连接

    http://www.linuxidc.com/Linux/2012-08/68035.htm 1.简介 在关系型数据库中,join操作是将不同的表中的数据联合在一起时非常通用的一种做法.首先让我们看 ...

  8. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  9. SQL的多表连接查询

    SQL的多表连接查询 多表连接查询具有两种规范,SQL92和SQL99规范. SQL92规范支持下列多表连接查询: (1)等值连接: (2)非等值连接: (3)外连接: (4)广义笛卡尔积: SQL9 ...

随机推荐

  1. [POJ 2019] Cornfields

    Cornfields Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5516   Accepted: 2714 Descri ...

  2. html的两种提交按钮submit和button

    转自:http://baiying.blog.51cto.com/1068039/1319784 html按钮有两种: <input type="button" value= ...

  3. GML、SVG、VML的比较

    转自:http://www.cnblogs.com/3echo/archive/2009/02/19/1394399.html GML.SVG和VML都是基于XML的可用来描述矢量图形的标记语言,都是 ...

  4. 通过Java SE 7自带的监控服务(WatchService API)实现类似.NET FileWatcher的功能

    Java SE 7 Tutorial中增加了一个监控目录变更情况的示例,用于介绍其新发布的WatchService API. 但对于用惯了.NET FileWatcher的用户而言,如果用于项目我认为 ...

  5. selenium 处理浏览器多窗口

    测试过程中,会弹出一些子窗口,并且有可能在多个窗口之间切换 必须要获取每个窗口的唯一标识符切换到该窗口,才能对该窗口的元素进行操作 首先,获取每个窗口的唯一标识符,然后以及和的形式返回 var mai ...

  6. 提升WI-FI信号强度的10大方法

    原文链接:http://server.51cto.com/Net-402889.htm

  7. delphi 提取字符中的数字

    Function Setstring(cString:string):string;   {提取数字} VAr   i:integer;   str:string;  begin    str:='' ...

  8. Storm系列(十七)DRPC介绍

    Storm版本0.9.5 在storm中DRPC服务应用于远程分布式计算,根据客户端提交的请求参数,而返回Storm计算的结果. DRPC服务启动流程(远程模式) 启动DRPC服务,启动命令:stor ...

  9. HDU2639Bone Collector II(01背包变形)

    01背包,求第k大. 以前看k短路的时候看过代码以为懂了 = =结果还是跑去看了别人的代码才会.果然要自己写一遍才行啊 0.0难得1A.. 每次把可能的2k种求出来,求前k个.注意要不一样的k个数.. ...

  10. Laravle Introduction

    Where To Start Learning a new framework can be daunting, but it's also exciting. To smooth your tran ...