1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Решение проблем

Views без дублей

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

Аватар пользователя kurl kurl 9 ноября 2017 в 22:01

Коллеги, подскажите, пожалуйста, как убрать "дубли" из views?
У меня есть набор однотипных нод с разным содержанием. Заголовки (поле ноды) могут совпадать (это и есть "дубли"), значения других полей - могут различаться. Мне нужно получить во views выборку (список: заголовок и ещё несколько полей каждой ноды), не содержащую повторяющиеся заголовки.
Т.е., если есть 2 ноды с одинаковым заголовком, то в выборку должна попасть одна - любая (вторая, тетья и тд ноды в выборку не попадают).

Комментарии

Аватар пользователя ХулиGUN ХулиGUN 10 ноября 2017 в 12:50

multpix wrote:

просто прочти вопрос!

прочти еще раз))))

kurl wrote:

У меня есть набор однотипных нод с разным содержанием

kurl wrote:

Заголовки (поле ноды) могут совпадать (это и есть "дубли")

kurl wrote:

ыборку (список: заголовок и ещё несколько полей каждой ноды), не содержащую повторяющиеся заголовки.

kurl wrote:

если есть 2 ноды с одинаковым заголовком, то в выборку должна попасть одна - любая (вторая, тетья и тд ноды в выборку не попадают).

И что я упускаю?

Аватар пользователя mbaev mbaev 11 ноября 2017 в 10:29

Не distinct, а GROUP BY. Зависит от диррективы sql_mode

mysql> SELECT nid, title, uid, STATUS, created FROM node ORDER BY title LIMIT 0, 10;
+-----+----------------------------+-----+--------+------------+
| nid | title | uid | STATUS | created |
+-----+----------------------------+-----+--------+------------+
| 101 | 123123 | 1 | 1 | 1509125814 |
| 21 | Abdo | 7 | 1 | 1507065945 |
| 74 | Abdo | 11 | 1 | 1507065945 |
| 47 | Abico | 0 | 1 | 1507065945 |
| 16 | Abico Praesent Vereor Wisi | 4 | 1 | 1507065945 |
| 33 | Abigo | 3 | 1 | 1507065945 |
| 61 | Abigo | 0 | 1 | 1507065945 |
| 78 | Abigo Lucidus Refoveo | 7 | 1 | 1507065945 |
| 49 | Abluo Causa | 9 | 1 | 1507065945 |
| 100 | Abluo Causa | 0 | 1 | 1507065945 |
+-----+----------------------------+-----+--------+------------+
10 ROWS IN SET (0,00 sec)

mysql> SELECT nid, title, uid, STATUS, created FROM node GROUP BY title ORDER BY title LIMIT 0, 10;
ERROR 1055 (42000): Expression #1 OF SELECT list IS NOT IN GROUP BY clause AND contains nonaggregated COLUMN 'drupal_ru_test.node.nid' which IS NOT functionally dependent ON COLUMNS IN GROUP BY clause; this IS incompatible WITH sql_mode=only_full_group_by

mysql> SELECT @@sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+

mysql> SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 ROWS affected (0,00 sec)

mysql> SELECT nid, title, uid, STATUS, created FROM node GROUP BY title ORDER BY title LIMIT 0, 10;
+-----+-------------------------------------------+-----+--------+------------+
| nid | title | uid | STATUS | created |
+-----+-------------------------------------------+-----+--------+------------+
| 101 | 123123 | 1 | 1 | 1509125814 |
| 21 | Abdo | 7 | 1 | 1507065945 |
| 47 | Abico | 0 | 1 | 1507065945 |
| 16 | Abico Praesent Vereor Wisi | 4 | 1 | 1507065945 |
| 33 | Abigo | 3 | 1 | 1507065945 |
| 78 | Abigo Lucidus Refoveo | 7 | 1 | 1507065945 |
| 49 | Abluo Causa | 9 | 1 | 1507065945 |
| 34 | Acsi Aliquam At Magna | 6 | 1 | 1507065945 |
| 15 | Acsi Aliquip Autem Dolor | 5 | 1 | 1507065945 |
| 68 | Acsi Gravis Quadrum Quidem Rusticus Tamen | 0 | 1 | 1507065945 |
+-----+-------------------------------------------+-----+--------+------------+
10 ROWS IN SET (0,00 sec)

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /