日期:2014-05-16  浏览次数:20741 次

数据库查询问题,求高手!不来高手就郁闷鸟
在同一个数据库中有两个表 表1 
  address name parent_classes classes parent
  news.qq.com 腾讯新闻首页 腾讯
  v.qq.com 视频新闻 新闻 腾讯
stock.cn.yahoo.com/ 股票 财经 雅虎
trip.cn.yahoo.com/ 旅行 旅游首页 雅虎
www.eastmoney.com/ 东方财富网首页 东方财富网
culture.ifeng.com/ 文化 资讯 凤凰网
表2中 
uri host domain
http://zh.3g.qq.com/index.jsp zh.3g.qq.com qq.com
http://w19.mail.qq.com/cgi-bin/bottle_read w19.mail.qq.com qq.com
/forward.jsp fwd.3g.qq.com:8080 qq.com:8080
/forward.jsp fwd.3g.qq.com:8080 qq.com:8080
http://s.image.wap.soso.com/img/ s.image.wap.soso.com soso.com
http://fxwr.j.3g.qq.com/p fxwr.j.3g.qq.com qq.com
随便列的一些数据 实际数据还有很多很多 
老大要我 用表1 中 address 字段 去匹配表二的三个字段 
如果
address = uri 还回 ur, parent_classes,name,parent字段 
如果
address=host 还回host,name,parent_classes,parent字段
如果
address=domain 还回domain,name, parent
  自己用的是win7的系统 数据库是用的MYSQL,跪求解答!



------解决方案--------------------
在SP中判断address的值,动态生成SQL语句,再执行
------解决方案--------------------
1、看看MYSQL的,弄清楚怎样建立 SP及相关语句、函数;
2、动手做一下吧,有问题在问。
------解决方案--------------------
(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
 
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
 
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。


------解决方案--------------------
自己百度下myql的匹配函数
------解决方案--------------------
在SP中判断address的值,动态生成SQL语句,再执行
------解决方案--------------------
可以考虑借助IF函数的方式解决:

SELECT CONCAT('SELECT 'IF(address,'uri','ur, parent_classes,name,parent')...) ....



推荐:
淘宝和阿里巴巴去Oracle化事件 引发数据库技术人员大讨论

WebGame行业案例:in子查询group by引发的“血案”

------解决方案--------------------
select ur, parent_classes,name,parent from b1 inner join b2 on address = uri 


select host,name,parent_classes,parent from b1 inner join b2 on address=host

select domain,name, parent from b1 inner join b2 on address=domain