- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始使用 Propel
。我的情况是 left joining a table to itself to obtain a min value .我编写了可以按需运行的查询,但我无法弄清楚如何使用 Propel
模型来完成它。
此查询获取在给定日期后注册的每个用户的首次成功付款:
SELECT `p`.`id` AS `payment_id`,
`p`.`request_date`,
`u`.`id` AS `user_id`,
`u`.`registration_date`
FROM `payments` AS `p`
LEFT JOIN `payments` AS `filter`
ON `p`.`user_id` = `filter`.`user_id`
AND `p`.`id` > `filter`.`id`
INNER JOIN `users` AS `u`
ON `p`.`user_id` = `u`.`id`
AND `u`.`registration_date` >= '2013-07-28'
WHERE `p`.`completed` = 1
AND `filter`.`id` IS NULL
ORDER BY `u`.`registration_date` DESC
请帮我把它翻译成 Propel
代码。
最佳答案
试试这个:
<?php
$q = \PaymentsQuery::create();
$q->select(array('Payments.RequestDate', 'Users.RegistrationDate'));
$q->withColumn('Payments.Id', 'payment_id');
$q->withColumn('Users.Id', 'user_id');
$q->withAlias('Filter', \PaymentsPeer::TABLE_NAME);
// The object to join must ALWAYS be on the right side
$q->addJoin(\PaymentsPeer::USER_ID, \PaymentsPeer::alias('Filter', \PaymentsPeer::USER_ID), \ModelCriteria::LEFT_JOIN);
$q->addJoin(\PaymentsPeer::USER_ID, \UsersPeer::ID, \ModelCriteria::INNER_JOIN);
$q->where('Payments.Id > Filter.Id');
$q->where('User.RegistrationDate >= ?', '2013-07-28');
$q->where('Payments.Completed = ?', 1);
$q->where('Filter.Id IS NULL');
$q->orderBy(\UsersPeer::REGISTRATION_DATE, \ModelCriteria::DESC);
我想使用 add
方法使列彼此相等,但这无法完成,因为它会将第二列转换为字符串。 I've asked this在 Propel Users Google Group 上,到目前为止没有任何回应。因此,我不确定第一个和第四个 where 子句是否有效。
关于mysql - Propel ORM - 在没有外键的情况下将表连接到自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066939/
是否可以在不修改架构的情况下生成 Propel 迁移文件?我只需要插入值。 谢谢。 最佳答案 您可以像这样生成空白迁移: 插入迁移:创建 关于propel - 单独为数据输入生成 Propel 迁移文
我在将 sql 查询转换为 propel 查询时遇到问题。 查询看起来像(我之前已经要求过此查询:Changing a sql query using join instead of a subsel
我已经广泛搜索了如何集成 propel 和 Zend Framework 2,但是我还没有找到解决方案。 这是我到目前为止所拥有的。 已安装的 ZF2 骨架目录插入来自 ZF 站点的示例专辑表数据 我
我在我的一个 Controller 中使用 Propel 参数转换器:(Symfony 2.4.2 + Propel 1.7) * @ParamConverter("center", convert
我有一个刚刚发布的应用程序。自从我写了它,我就了解了 amfphp 和 propel。在应用程序中使用两者都会“很好”,但我不能说此时需要它。 在重构代码之前,您会考虑哪些类型的事情? 最佳答案 进行
只是想知道 Propel 对数据库分片的支持有多好?我正在考虑用 PHP 创建我的应用程序,使用 MySQL 作为数据库服务器,使用 Propel 作为 ORM。 我发现从一开始就保持架构的可扩展性可
我正在使用 Propel 框架与数据库进行通信。当我尝试进行输入时,我认为它正在使用 PDO 并生成 bindParam(),因此应该涵盖 SQL 注入(inject)。 但是它是否提供额外的安全性,
我想使用 propel 获得所有模式表的输出。当引用特定的TableMap时 $users = UsersTableMap::getTableMap(); $map = $users->getData
我正在使用 Propel 框架与数据库进行通信。当我尝试进行输入时,我认为它正在使用 PDO 并生成 bindParam(),因此应该涵盖 SQL 注入(inject)。 但是它是否提供额外的安全性,
我正在努力获取连接数据库的动力。我使用 propel reverse "..." 创建了类映射和表映射,并创建了以下结构: propel.ini [propel] # A better Plurali
我在使用 Propel2(版本 2.0.0-dev)时遇到问题。 我有三个外键指向同一个表: 尽管 PhpNames 不同,但基类会错误地生成 default: $key
我的 php 项目基于两个独立的数据库。一种是 MySQL DB,另一种是 Microsoft SQL-server。基本上我已经配置了整个环境并且它几乎可以正常工作。 几乎,因为我在尝试访问两个数据
我最近收到了学校的一项作业,我必须为 ORM 创建一个 Propel Schema。这并不是真正的问题,但要求之一是以多对多关系连接其中两个表。 通常,您会使用交叉表(保存两个表的属性)来做到这一点,
当我尝试在网页上发布加入日期时遇到问题: Fatal error: Class 'getJoinDate' not found in ******** $newDate = getJoinDate::
我需要将以下 sql 查询转换为 Propel: SELECT tag.tag, count( content_tag.tag_id ) AS weight FROM content_tag, tag
我有一个 mysql 数据库,里面有一些表。两个表的示例: TABLE "dogtoilets" - type - location_id (FK) TABLE "locations" - id -
我现在在 propel 网站 (http://www.propelorm.org/wiki/Documentation/1.5/Installation) 上,正如我所料,有很多安装它的命令行说明,但
我目前正在重构一些东西以使用 Propel。 我们目前有一个函数可以像这样将文本添加到“历史”字段: UPDATE tablename SET history = CONCAT(history,
->where("((Job.TwCountry = ? AND Job.TwAbroad = 1) OR (Job.TwCountry != ? AND Job.TwCountryTarget LI
我在 symfony 2.1 中使用 propel master-dev。可以写这样的东西吗?否则我如何向 select 语句添加别名。 $products = ProdottinewQuer
我是一名优秀的程序员,十分优秀!