Итак, мы все знаем, что документация для Kohana 3 абсолютно ужасна. Итак, как я могу построить следующий запрос, где у меня есть модель «Player» и «Dragon»?Kohana 3 ORM: расширенные запросы, эффективность
SELECT * FROM `dragons` JOIN `players` ON (`dragons`.`player_id` = `players`.`player_id`) WHERE `uid` IN (1,2,3) ORDER BY `dragons`.`id` ASC
я могу использовать ORM::factory('dragon')->join("players")->on("dragons.player_id", "=", "players.player_id")
, чтобы добраться до присоединиться к части, но я не могу сделать оговорку in
. В ORM Kohana 3 нет функции in
. Я попробовал функцию where
, но он помещает кавычки вокруг третьего параметра, поэтому мой список идентификаторов становится строкой, и запрос становится недействительным. Так что я могу сделать? Я не могу понять, как добавить пользовательские биты SQL в мои запросы загрузки ORM. Опять же, поскольку документация не существует.
Единственный способ, с которым я могу сейчас подумать, - это просто загрузить всех соответствующих игроков, пройти через них и забрать их драконов. Но это кажется действительно глупым - больше запросов, чем необходимо. Раньше я чувствовал себя так, что использование ORM делает вещи ужасно неэффективными в конце запроса, чтобы сделать его немного легче кодировать. Это правда?
@ The Pixel Developer: да, возможно – zerkms
@ The Pixel Developer Вы превратили мой посредственный ответ в хороший - спасибо! – alex
Без проблем alex. На самом деле не стоит собственный ответ на 3 строки, и поскольку вы уже сделали большую часть работы, я подумал, что было бы лучше улучшить ваши :) –