Получение данных MySQL из taglist и прямого поиска

Я делаю поиск в своей базе данных. В то же время мне установили систему маркировки. Не все помечено все же, таким образом, мне также нужен 'старомодный' результат моей базы данных. Позвольте мне прояснить:

Table A
+----+----------------------------+
| ID | description                |
+----+----------------------------+
|  0 | horse going bad            |
|  1 | Older Years of Resolutions |
|  2 | The pirate                 |
|  3 | The Wish list              |
|  4 | list that's no list        |
+----+----------------------------+

table TAGS
+----+------------+
| ID | tag        |
+----+------------+
|  0 | list       |
|  1 | knockknock |
+----+------------+

table TAGLINKS
+-------+--------+
| TAGID | JOKEID |
+-------+--------+
|   0   |    2   |
|   0   |    3   |
+-------+--------+

Когда я делаю этот поиск:

select * from A where locate('list',description)

Я достану ID 3 и 4 из стола A, который является большим.

Когда я делаю этот поиск:

select * from tags
   join taglinks on tagid=tags.id
   join A on A.id=jokeid
where tag='list'

Я достаю ID 2 и 3 из стола A.

То, что я хочу возвратить, является ID 2, 3 и 4. Так соединение двух результатов. Я попробовал это:

select * from tags
   join taglinks on tagid=tags.id
   join A on A.id=jokeid or locate('list',description)

Это, кажется, дает мне правильный результат, но это настолько медленно, это забивает сервер (в действительности, столы НАМНОГО больше, чем примеры здесь). Причина я хочу объединенный вопрос, состоит в том, что мне нужны функции как ORDER BY и ПРЕДЕЛ. Таким образом, я надеюсь получать объединенный результат вышеупомянутых двух вопросов.

0
добавлено отредактировано
Просмотры: 2
nl ja de
Действительно, был! Спасибо!
добавлено автор patrick, источник
союз - решение для вашей проблемы
добавлено автор Muhammad Raheel, источник
Что останавливает вас из просто СОЮЗ луг два быстрых вопроса?
добавлено автор Eugen Rieck, источник

1 ответы

Поскольку Ойген Рик и Рэхил Шань указали, что ответ - союз:

select A.* from tags
  join taglinks on tagid=tags.id
  join A on A.id=jokeid
where tag="list"
UNION
select * from A where locate("list",description)

Дает мне ID 2, 3 и 4

1
добавлено