Sandr
Новичок
Группировка полей из разных таблиц
Есть три таблицы
список работ dp_gallery (id, text)
список файлов dp_gallery_img (id, pid, filename, watermark)
список ключевых слов dp_tags (id, word)
При таком запросе поле watermark имеет количество записей равное количеству filename умноженному на количество keywords
Пример
g.id = 2
g.text = блабла
filename = "file1, file2, file3"
watermark = "center,empty,center,center,empty,center,center,empty,center,center,empty,center"
keywords = "word1, word2, word3, word4"
если добавить DISTINCT в часть -
то поле watermark групируется по схожим словам и выходит
g.id = 2
g.text = блабла
filename = "file1, file2, file3"
watermark = "center,empty"
keywords = "word1, word2, word3, word4"
------------------------
Как получить список watermark равный по количеству filename?
Есть три таблицы
список работ dp_gallery (id, text)
список файлов dp_gallery_img (id, pid, filename, watermark)
список ключевых слов dp_tags (id, word)
PHP:
SELECT g.*,
group_concat(DISTINCT i.filename) AS filename,
group_concat(i.watermark) AS watermark,
group_concat(DISTINCT w.word) as keywords
FROM dp_gallery AS g
LEFT JOIN dp_gallery_img AS i ON i.pid = g.id
LEFT JOIN dp_tags AS w ON w.id = ANY (SELECT tagId FROM dp_tags_links WHERE gid=g.id AND tbl='_gallery')
WHERE g.id = ANY (SELECT gid FROM dp_menu_gallery_links WHERE mid=38)
GROUP BY g.id ORDER BY RAND() LIMIT 0,1
Пример
g.id = 2
g.text = блабла
filename = "file1, file2, file3"
watermark = "center,empty,center,center,empty,center,center,empty,center,center,empty,center"
keywords = "word1, word2, word3, word4"
если добавить DISTINCT в часть -
PHP:
group_concat(DISTINCT i.watermark) AS watermark
g.id = 2
g.text = блабла
filename = "file1, file2, file3"
watermark = "center,empty"
keywords = "word1, word2, word3, word4"
------------------------
Как получить список watermark равный по количеству filename?