在MySQL中的不同表中搜索不同的列名

时间:2012-02-21 10:05:28

标签: mysql

我有两张桌子,例如:

content
- id
- title

news
- id
- myTitle

所以我希望能够在content.title和news.myTitle中搜索相同的关键字,但是我不能使用连接,因为两个表之间没有外键。我尝试了几个不同的查询但没有返回我期望的结果,所以任何帮助将不胜感激。我只想要一个简单的LIKE查询来搜索两个表中的title / myTitle。

3 个答案:

答案 0 :(得分:5)

select content.title, 'content' as src_table from content where title = 'keyword'
union
select news.myTitle, 'news' as src_table from news where myTitle = 'keyword'

答案 1 :(得分:4)

UNION在这件事上是你的朋友(背景阅读:http://dev.mysql.com/doc/refman/5.6/en/union.html

(
    SELECT
        'content',
        id,
        title
    FROM content
    WHERE title LIKE '%.....%'
)
UNION
(
    SELECT
        'news',
        id,
        myTitle AS title
    FROM news
    WHERE myTitle LIKE '%.....%'
)

答案 2 :(得分:1)

怎么样?

select id, title from content
where title like '%blah%'
union all
select id, myTitle from news
where title like '%blah%'

请注意,如果您不使用union all,那么您可能会丢失记录。目前尚不清楚您是否需要它。