Задать вопрос
coderisimo
@coderisimo

Возможен ли запрос SQL (MySQL) для получения всех данных сразу?

Есть ли способ получить данные одним запросом?
315c95dde7ac41298c7a28210b50255d.jpg

https://dl.dropboxusercontent.com/u/19954007/asks/...

Мне нужно чтобы при поиске подстроки "SHA" Я получал :

'tittle' 'tags'
KOLYA SHA,HA
SASHA OP

первая строка вывелась так как в одном из тэгов была искомая подстрока, вторая, так как была искомая подстрока найдена в ее заголовке.
т.е, чтобы поиск производился в pages (по частичному совпадению с tittle) и по тэгам(тоже по частичному совпадению) . И, если либо в заголовке либо в одном из тегов найдено совпадение, возвращалась запись с заголовком и ВСЕМИ ее тэгами.

я начал с GROUP_CONCAT, но сдулся ))))), разумеется можно было иначе организовать базу, но увы.... это данность )
спасибо
  • Вопрос задан
  • 346 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `p`.`title`, GROUP_CONCAT(`t`.`tag` SEPARATOR ',')
    FROM `page_tag` AS `pt`
    JOIN `tag` AS `t` ON `t`.`id` = `pt`.`tag_id`
    JOIN `pages` AS `p` ON `p`.`id` = `pt`.`page_id`
    GROUP BY `p`.`id`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Примерно так.
SELECT *(убрать звездочку, перечислить нужные столбцы) FROM Pages as p
LEFT JOIN page_tag as pt ON pt.pageId = p.Id
INNER JOIN tag as t ON t.tag_id = pt.tag_Id
WHERE <Условия фильтрации>

Разбирайтесь с JOIN
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы