Коллеги, подскажите, пожалуйста, как убрать "дубли" из views?
У меня есть набор однотипных нод с разным содержанием. Заголовки (поле ноды) могут совпадать (это и есть "дубли"), значения других полей - могут различаться. Мне нужно получить во views выборку (список: заголовок и ещё несколько полей каждой ноды), не содержащую повторяющиеся заголовки.
Т.е., если есть 2 ноды с одинаковым заголовком, то в выборку должна попасть одна - любая (вторая, тетья и тд ноды в выборку не попадают).
Комментарии
Использовать агрегацию
В настройках views есть "исключить дубли"
https://www.drupal.org/project/views_distinct
А в чём интересность то, в GROUP BY ?
Перечитай вопрос.
@mbaev
SELECT title, col_name FROM my_table GROUP_BY title;
С помощью ORDER BY решаем из какой записи будет выведен col_name
Что я упускаю?
просто прочти вопрос!
прочти еще раз))))
задайся встречным вопросом - почему не unique...
И что я упускаю?
Просто прочти вопрос-то еще разок
Автор, первые два ответа - правильные.
С чего бы это они правильные? Distinct даёт уникальность только по ключевым столбцам, коим тайтл не является. А вот ответ dgastudio больше всех претендует на истину.
Не distinct, а GROUP BY. Зависит от диррективы
sql_mode
+-----+----------------------------+-----+--------+------------+
| 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)
Я понял - пятничка)))
подскажите, пожалуйста, где во views "исключить дубли" находится?