問題定義。如何在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