因此,我有以下示例表:

Table A:
id
name
type
hat_size
created

Table B:
id
name
type
favorite_food
created

Table C:
id
name
type
some_other_thing
created


假设我想使用ABCid使用模型nametypecreated的结果创建搜索。

我的目标是搜索所有三个表,并按其中一个字段排序(让我们使用created作为ORDER_BY字段),并限制为20个结果。

通常,我只是简单地对这些字段进行并集,按字段排序,然后对结果LIMIT进行排序。

现在,我知道我可以创建一个原始查询来执行此操作……但是,这意味着我必须重写分页方法,始终进行清理等。此外,它笨拙并且不一定可以在多个SQL数据库之间移植。如果可能的话,我更愿意使用模型本身,以更MVC友好的方式进行操作。

使用CakePHP解决此问题的最佳方法是什么?

谢谢,
詹姆士

最佳答案

一种选择是创建一个保存VIEW查询的UNION。然后在视图上执行Cake查询。

但是,由于难以在服务器之间传输视图(以及导出中通常包含的烦人的DEFINER命令),我最近开始避免使用视图。

关于sql - 在CakePHP中为相似的数据查询多个模型(联合?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10546824/

10-13 01:34