sql - 限制型号选择

标签 sql database cakephp models

我有一个名为 Event 的数据库表,在 CakePHP 中它的关系编码如下:

var $belongsTo = array('Sport');
var $hasOne = array('Result', 'Point', 'Writeup', 'Timetable', 'Photo');

现在正在查询,只想提取 Sport、Point 和 Timetable

这会导致我检索 Sports、Events、Points 和 Timetable。

不提取所有内容的原因是结果有 17000 多行。

有没有办法只选择那些使用的表:

$this->Event->find('all');

我看过 API,但看不出它是如何完成的。

最佳答案

您应该在您的 app_model 中将 recursive 设置为 -1 并且只提取您需要的东西。永远不要使用 2 和 http://book.cakephp.org/view/1323/Containable 的递归太棒了。

只是 $this->Event->find('all', array('contain' => array()));

如果你在 app_model 中使用递归 as -1 的技巧,这不是必需的,如果只是 find('all') 就像你拥有的那样

关于sql - 限制型号选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064999/

相关文章:

php - MySQL 从由第三个表连接的 2 个表中提取内容

objective-c - 连接到 MS SQL 服务器的 C 库 [适用于 iOS]

linux - 如何在 lampp 上设置多个子域?

.htaccess - Cakephp 密码保护与 htaccess 和 htpasswd - 如何?

google-app-engine - Java 或 Php 的 Oauth 服务提供者的实现

mysql - 在 GROUP BY 中选择 MAX,但在 MYSQL 中将结果限制为 1

mysql - 如果mysql不存在多行,如何插入

mysql - 根据 Hive 中另一个表中的时间戳在表中查找记录

c# - 比较两个不同数据库的所有字段: Whats the way to go?

android - KEY_ID 是为 Android 中的 sqlite 数据库表自动生成的吗?它叫 "KEY_ID"吗?