Как сделать выбор на одинаковые значения из нескольких столбцов в SQL - PullRequest
3 голосов
/ 12 октября 2009

У меня есть две таблицы со столбцами:

Genres  
  ID  
  genre

и

Adjectives
  ID
  adjective_title

Мне нужно сделать выборку, которая возвращает совпадающие значения из столбцов обеих таблиц с синтаксисом like.

Например, если ep было введено с помощью like, результат будет выглядеть следующим образом:

result_column:
--------------
epiphonic -- (from genres table)
epic      -- (from adjectives table)

и т. Д. , .

Я почти уверен, что мне нужно использовать подзапрос, чтобы вернуть результаты.

Ответы [ 2 ]

8 голосов
/ 12 октября 2009

попробуйте

SELECT genre AS result
FROM genres
WHERE genre LIKE '%ep%'
UNION
SELECT adjective_title AS result
FROM 
  adjectives
WHERE adjective_title LIKE '%ep%'

Объединение удалит дубликаты в каждом запросе, используйте UNION ALL для каждого.

0 голосов
/ 12 октября 2009

Вы можете сделать это без подвыборов, но это не будет быстро для больших таблиц, используя concat для построения строки, на которой вы используете оператор like:

select g.ID, g.genre, a.adjective_title from Genres g, Adjectives a where
concat(g.genre, a.adjective_title) like '%epic%'
...