问题定义。如何在DBIx :: Class :: ResultSet上执行此搜索和order_by
我有多个用户的多个客户端。每个客户端都需要能够将自定义数据与用户相关联,搜索和排序。
数据库解决方案:
甲表Customfields限定customfields表。它有一个id和名字。 它与Userfields表(又名“属性”)具有has_many关系。
Userfields表具有用户标识,customfieldid,内容和标识。 它belongs_to的一个Useraccounts表(又名 “useraccount”)和Customfields(又名 “的CustomField”)
提出,我想选择语句:
这是实现和生产什么select语句我需要。
SELECT ua.*, (
SELECT content FROM Userfields uf
INNER JOIN Customfields cf
ON cf.id = uf.customfieldid
WHERE cf.name = 'Mothers birthdate'
AND uf.uid=ua.uid
) AS 'Mothers birthdate',
(
SELECT content FROM Userfields uf
INNER JOIN Customfields cf
ON cf.id = uf.customfieldid
WHERE cf.name = 'Join Date' AND
uf.uid=ua.uid
) AS 'Join Date'
FROM UserAccounts ua
ORDER BY 'Mothers birthdate';
在这种情况下,它们可能是从0什么...在SELECT语句×副SELECT语句和它们中的任何一个,或者都不可以希望被订购。
问题
如何实现这一目标用 - >我dbix类的ResultSet或者我如何实现与我dbix类的ResultSet搜索结果相同的搜索?
下面是我通常如何从我的Useraccounts表中选择,但我不确定如何从这里执行复杂的语句。
my @users = $db->resultset('Useraccounts')->search(
undef,
{
page => $page,
join => 'attributes',
...
});
谢谢你的时间。
-pdh
我太累了,不想回答这个问题,但是男人,我必须给你一些道具来编写这样一个写得很好的问题! – 2010-08-07 09:13:04
干杯JGB;希望它会鼓励一个很好的答案:) – 2010-08-07 09:22:32