+ -
当前位置:首页 → 问答吧 → 【请教sql语句】 两个表字段合并一个字段查询

【请教sql语句】 两个表字段合并一个字段查询

时间:2011-08-17

来源:互联网

 
  A表: id,title
  B表: id, name

  想要的一个查询结果select

  title, name 合并做一个字段,keyword, 然后好用 WHERE kewyord = 'xxxx' 这样查询。

一般情况 是 

SELECT title FROM A WHERE title = 'xxxx', 

或者 SELECT name FROM B WHERE name = 'xxxx',

 想实现的结果是,有没有可能,把这两个语句合并, title 和 name 合并成一个 keyword 别名

作者: njxiaod   发布时间: 2011-08-17

贴建表及插入记录的SQL,及要求结果出来看看

try:
select * from (
select * from a inner join b on a.id=b.id) a where concat(title,name)= 'xxxx'

作者: wwwwb   发布时间: 2011-08-17

谢谢, 抱歉我写错了一点,两个表的id 是没有关联的。 所以大概不能用inner join

怎么处理呢?

作者: njxiaod   发布时间: 2011-08-17

最理想的结果结构 然后用select 来查询。不知道怎么处理

  Keyword id 

  A表title
  B表name 
  .....
  .....

作者: njxiaod   发布时间: 2011-08-17

在表A中创建name字段,把表B的name的值插入表A中,然后用语句
select title,name from A where title = 'xxxx' or name='xxxx',

作者: laistar   发布时间: 2011-08-17

select * from a, b 
where concat(title,name)= 'xxxx'

作者: wwwwb   发布时间: 2011-08-17

SQL code
select * from (select id, title as keyword from A union all select id, name as keyword from B) TT where keyword = 'xxxx'; 

作者: vipper23   发布时间: 2011-08-17

你的合并是什么意思?
是title+name='xxxx'?

作者: wwwwb   发布时间: 2011-08-17

也就是现在 一个搜索功能,
一个input textfield ,当用户输入一个关键词,我要查询 A表 的title 和 B表的 name,
看看有没有记录,如果有的话,就输出这个keyword。就像google那样自动提示功能(输入一个字母,然后提示,不过这个使用程序实现不用管,关键是查询)。 关键我这个自动提示功能的关键词(keyword)要查询两个表。

如果在一个表,那就好办。一个select title form A 就可以了。 那提示的就是结果就是 title 一个。

谢谢。





作者: njxiaod   发布时间: 2011-08-17

select * from (
select * from a
union
select * from b) where title='xxx'

作者: wwwwb   发布时间: 2011-08-17