Определение проблемы.Как это сделать, и order_by на DBIx :: Class :: ResultSet
У меня есть несколько клиентов с несколькими пользователями. Каждый клиент должен иметь возможность связывать пользовательские данные с пользователем, искать и заказывать.
База данных решений:
Таблица Customfields которая определяет таблицу customfields. Он имеет идентификатор и имя. Имеет отношение has_many с таблицей Userfields (иначе называемые атрибутами).
Таблица Userfields имеет идентификатор пользователя, customfieldid, контент и идентификатор. Это BELONGS_TO таблицу UserAccounts (так называемый «UserAccount») и Customfields (так называемый «customfield»)
Предлагаемое отборное заявление, что я хочу:
Это оператор выбора, который достигает и производит то, что Мне нужно.
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 ... х юга выберите операторы в операторе отбора и любой из них или ни один из них не мог желать быть заказано.
Вопрос
Как я могу добиться этого с -> Поиск по моему DBIx класса результирующего или как я могу добиться того же результата с поиском на моем DBIx класса результирующего?
Вот как я обычно выбираю из таблицы Useraccounts, хотя я не уверен, как выполнить сложное заявление, которое я хочу отсюда.
my @users = $db->resultset('Useraccounts')->search(
undef,
{
page => $page,
join => 'attributes',
...
});
Спасибо за ваше время.
-pdh
Я слишком устал, чтобы попытаться ответить на это, но человек, я должен дать вам реквизит для составления такого хорошо написанного вопроса! –
Cheers JGB; надеюсь, это послужит хорошим ответом :) –