当前位置: 首页 > 面试题库 >

使用Zend DB编写子查询

程俊誉
2023-03-14
问题内容

我在将下面的SQL转换为Zend Db查询时遇到了一些问题。

$select = ' SELECT s.id, i.id as instance_id, i.reference, i.name, i.sic_code, i.start_date
                FROM sles s
                JOIN sle_instances i
                ON s.id = i.sle_id
                WHERE i.id = (  SELECT MAX(id) 
                                FROM sle_instances 
                                WHERE sle_id = s.id
                                )
                ORDER BY i.name ASC';

我之前已经了解了代码-但Zend Db无法正确生成查询。谁能告诉我我想念的东西吗?

$select = $db->select() ->from('sles', array(   'id',
                                                'instance_id'   => 'sle_instances.id',                                                                                          
                                                'reference'     => 'sle_instances.reference',           
                                                'name'          => 'sle_instances.name',
                                                'sic_code'      => 'sle_instances.sic_code',
                                                'start_date'    => 'sle_instances.start_date'
                                             )
                              )
                        ->join('sle_instances', 'sles.id = sle_instances.sle_id')
                        ->where('sles.id = (SELECT MAX(id) FROM sle_instances WHERE sle_id = sles.id)')
                        ->order('sle_instances.name ASC');

SQL确实可以正常工作。我想使用Zend Paginator功能来使用Zend Db重写它。

任何帮助是极大的赞赏。

J


问题答案:

这个:

    $select = $db->select()->from(array("s" => "sles"), array("s.id","i.id as instanceid","i.reference","i.name","i.sic_code","i.start_date"))
                                 ->join(array('i' => "sle_instances"),"s.id = i.sle_id",array())
                                 ->where("i.id = (select max(id) from sle_instances where sle_id = s.id)")
                                 ->order('i.name asc');

给出以下内容:

"SELECT `s`.`id`, `i`.`id` AS `instanceid`, `i`.`reference`, `i`.`name`, `i`.`sic_code`, `i`.`start_date` FROM `sles` AS `s`
 INNER JOIN `sle_instances` AS `i` ON s.id = i.sle_id WHERE (i.id = (select max(id) from sle_instances where sle_id = s.id)) ORDER BY `i`.`name` asc"


 类似资料:
  • 问题内容: 我有此查询,它运行良好 从此查询中,我从我的位置(这是我的第一张表)中选择所有3 KM的餐厅。 但是我需要从3Km中的食品接头中选择AVG等级。 该查询也运行完美: 但是我需要添加这两个查询,通过它们我可以选择所有那些食品接头及其等级AVG。 问题答案: 只需放置子查询,您将得到结果:

  • 我的ParkingLotEntity: 我的Jpa存储库接口 上面的两个方法运行良好,但问题是我还需要从结果集到第二个方法“GetAllParkingLotCurrentlyWorkingInRegionOfRadius”中的位置的任何停车场之间的距离!在SQL Server中,我的定义函数已经计算出了距离。方法2的结果集是成功的,但没有返回距离(这是我的需要),只是一组parkingLotEnt

  • 问题内容: 我从查询中得到了结果。 我的简单SQL是: 在Laravel源代码中,我编写了查询: 我得到了想要的结果,但我想以更好的方式编写它。 请告诉我编写此查询的正确和正确的方法。 问题答案: 同时显示此答案以及您的变体:

  • 问题内容: 谁能帮助我获取下面提到的JPA查询的JPA标准查询。 问题答案: 假设Person与语言有关,这就是您在较早的Hibernate中所做的事情: 我第一次尝试使用JPA 2.0: 请让我知道这是否适合您。 编辑: 更新查询以仅使用一个呼叫。

  • 我必须得到特定的数据,如"角色"表已提交状态,我需要状态=1,所有数据从角色表

  • 问题内容: 我想编写一个方法,该方法返回按字段“ serviceId”分组的最后添加的对象的列表。 以下HQL可以使用,但我想使用Criteria API编写: 像这样: 提前致谢。 编辑: 现在,我需要使用eclipselink API = /的类似查询, 基本上,我需要最后N行(最大日期),该状态是下面所述的五行之一,按serviceId列分组。 由于我的经验不足,这是我所能做到的最好的: 缺