У меня есть таблица с именем "профиль", как это
profile_id name state location
1 Alex Houston Park Lane
У меня есть вторая таблица с именем "tags", как это
tag_id profile_id tag_title
1 1 finance
2 1 accounting
3 1 audit
У меня есть третья таблица с именем "trust_admin_aum", подобная этой
tier_d profile _id min_price max_price fee
1 1 400 500 5
2 1 750 1200 12
3 2 900 1500 15
Для одного и того же профиля может быть несколько уровней.
Мой сценарий таков, что пользователь вводит тег, состояние и min_price для поиска, и мне приходится искать при следующих условиях
- должен совпадать первым, если введенный пользователем профиль тега находится в дБ или нет
- затем сопоставьте состояние, соответствует ли введенное пользователем состояние любому профилю с этим тегом
- если выше обоих условий истинно, проверьте, есть ли какой-либо профиль с <= min_aum_price, который пользователь вводит min_price в таблицу таблицы trust_admin_aum </li>
как это
result : {
profile_id : 1,
name : alex,
state : Houston,
location : Park Lane,
tag_title : finance,
tags : finance,accounting
}
Я пробовал этот запрос
SELECT p.*, IFNULL(GROUP_CONCAT(t1.tag_title), '') AS tags FROM basicprofile AS p JOIN profile_tags AS t1 ON p.profile_id = t1.profile_id JOIN profile_tags AS t2 ON t1.profile_id = t2.profile_id INNER JOIN trust_admin_aum AS taum ON taum.profile_id = p.profile_id WHERE p.state LIKE '%Houston%' AND t2.tag_title LIKE '%finance%' AND taum.min_price <=800 GROUP BY p.profile_id
Но этот запрос дважды возвращает теги, подобные этому
result : {
profile_id : 1,
name : alex,
state : Houston,
location : Park Lane,
tag_title : finance,
tags : finance,accounting,auditing,finance,accounting,auditing
}
Как я могу избавиться от этого дважды теги?