gpt4 book ai didi

sql - 带有 Propel 的嵌套 SQL 语句?

转载 作者:行者123 更新时间:2023-12-04 20:57:24 24 4
gpt4 key购买 nike

我正在尝试将 SQL 语句转换为 Propel,但没有取得如此大的成功。我有这个 SQL 语句:

SELECT id, param1, param2
FROM Field1
WHERE id
in
(
SELECT DISTINCT Field1_id
FROM Field2
WHERE id in
(
SELECT DISTINCT `Field2_id`
FROM `Field3`
WHERE
`param7` is null
AND param5 > 40
)
) LIMIT 0, 1000

我开始以原始方式进行操作:
$connection = Propel::getConnection();
$query = "my Query";
$statement = $connection->prepare($query);
$statement->execute();
$results = $statement->fetch(PDO::FETCH_ASSOC);

这工作得很好,但我不能对 $results 执行任何推进操作,因为它是一个数组。

那么如何在没有原始方式的情况下将此 SQL 转换为 Propel 呢?

最佳答案

一个很好的快速解决方法是在数据库中创建一个 View ,并在 Propel 中为该 View 设置一个只读表。然后,您可以像使用普通 Propel 表一样使用您的 View 模型。现在这当然是作弊,并且被 ORM 纯粹主义者所反对,但它会让你在短期内继续前进。

我的方法是尝试重构回表,在这些表中我将它用于一个简单的查询,但对于大型的中央查询(特别是用于主要向下钻取屏幕的复杂查询),我非常乐意永久保持 View 方法。

关于sql - 带有 Propel 的嵌套 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com