Ограничить количество значений получаемых при sql запросе

Главные вкладки

Аватар пользователя abutan abutan 17 марта 2016 в 16:44

Здравствуйте.
Делаю выбор значений из нескольких таблиц. Выбираю текстовое поле и картинку соответствующую этому тексту, ограничиваю это все выбираемым юзером термином таксономии (фильтр).
Все получилось, все начало работать. Проблема вот в чем - в некоторых нодах, тексту соответствуют несколько картинок, а мне нужно получать только одну (первую). С sql знаком довольно поверхностно, запрос кое как еще написал, но вот с тонкостями плохо.
Есть ли способ ограничить количество, получаемых из одного конкретного поля, значений? Пробовал экспериментировать с range, но он у меня ограничивает общее количество результатов выборки.
Заранее благодарен.

Комментарии

Аватар пользователя abutan abutan 17 марта 2016 в 20:26

Я прошу прощения, но все равно не смог разобраться, Из database api смог понять что distinct() работает для удаления дублирующихся значений. Пробовал как то так ->addExpression('count(distinct fm.uri), 1') , но что то я явно недопонял, и работает как range().
Может кто подскажет где почитать применительно к drupal 7, или кто делал что то подобное?

Аватар пользователя Lotar Lotar 17 марта 2016 в 20:30

Если вы спрашиваете про друпал, то спрашивайте про друпал, а не про эскуель запросы. Установите views и с его помощью выводите поля. В случае с полем типа image можно ограничить вывод картинок как вам захочется.

Аватар пользователя abutan abutan 17 марта 2016 в 21:13

Я и спрашиваю про drupal. В данном случае по ряду причин использовать views не могу. Поэтому и пишу кучу фильтров руками. А там приходится писать вот эти самые sql запросы. Во views я бы и не спрашивал, там не один способ решить эту задачу.