Поиск в двух таблицах и порядок по появлению термина - PullRequest
0 голосов
/ 03 января 2012

У меня есть этот запрос для поиска в двух таблицах SQL.Я ищу способ отсортировать результат по появлению.Это мой запрос:

SELECT `parent_id`
FROM wp_forum_posts
WHERE text LIKE '%{$term1}%'
UNION
SELECT `id`
FROM wp_forum_threads
WHERE subject LIKE '%{$term1}%

Какой самый лучший способ получить заказанные результаты?

Ответы [ 2 ]

1 голос
/ 03 января 2012

Сначала используется трюк UNION ALL, который сохраняет дубликаты (обычный UNION удаляет дубликаты), а затем выбирает из этого результата. Этот запрос должен сделать это:

select * from (
    select parent_id as mID, count(*) as cnt
    from wp_forum_posts
    where text like '%{$term1}%'
    group by 1
  UNION ALL
    select id, count(*)
    FROM wp_forum_threads
    where subject like '%{$term1}%
    group by 1) x
order by 2, 1
0 голосов
/ 03 января 2012

Предполагается, что ID и parent_ID не являются дубликатами в таблицах, в противном случае вы можете получить 2 строки для идентификатора ... и вы хотите, чтобы они суммировались вместе, если это так, тогда связаны ли parent_ID и ID?

...