2009-10-12 43 views
3

做一个选择从多个列样值,我有两个表的列:如何在SQL

Genres 
    ID 
    genre 

Adjectives 
    ID 
    adjective_title 

我需要做一个选择,从返回匹配值这两个表列都使用like语法。

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

等:

例如,如果EP使用like结果会是什么样子输入的值。 。 。

我很确定我需要使用子查询来返回结果。

回答

8

试试这个

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

这是真棒!谢谢! – Atma 2009-10-12 15:00:59

0

你可以做到这一点没有子选择,但它不会很快大表上,通过使用CONCAT打造你使用类似操作的字符串:

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

Concat在Sql Server 2012下不起作用。 – 2015-03-24 10:39:25