数据库查询问题,求高手!不来高手就郁闷鸟

小小小小蜗牛 2012-03-30 10:28:38
在同一个数据库中有两个表 表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,跪求解答!

...全文
166 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinguanding 2012-03-31
  • 打赏
  • 举报
回复
可以考虑借助IF函数的方式解决:

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



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

WebGame行业案例:in子查询group by引发的“血案”
WWWWA 2012-03-31
  • 打赏
  • 举报
回复
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
小小小小蜗牛 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

因为你要返回的字段不同 ,必须用存储过程判断address的值,执行不同的SQL语句
[/Quote]
如果可以给了概念就可以了 我自己琢磨下 我刚毕业出来 表达能力也不好 见谅啊
谢谢啦 麻烦快点给一个概念吧
wwwwb 2012-03-30
  • 打赏
  • 举报
回复
1、看看MYSQL的,弄清楚怎样建立 SP及相关语句、函数;
2、动手做一下吧,有问题在问。
小小小小蜗牛 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

在SP中判断address的值,动态生成SQL语句,再执行
[/Quote]
大哥哥 我新手很新的那种手 能说的详细点么
wwwwb 2012-03-30
  • 打赏
  • 举报
回复
在SP中判断address的值,动态生成SQL语句,再执行
小小小小蜗牛 2012-03-30
  • 打赏
  • 举报
回复
补偿 我戳 我打这么多空格白打的 表1中存在空格 空格
ACMAIN_CHM 2012-03-30
  • 打赏
  • 举报
回复
查询语句或者可以实现,提供你的建表语句和测试数据吧。 否则只能凭空给你个概念。
wwwwb 2012-03-30
  • 打赏
  • 举报
回复
因为你要返回的字段不同 ,必须用存储过程判断address的值,执行不同的SQL语句
小小小小蜗牛 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
在SP中判断address的值,动态生成SQL语句,再执行
[/Quote]
SP 是什么东西 拜托大哥哥 我是新手哎
wwwwb 2012-03-30
  • 打赏
  • 举报
回复
在SP中判断address的值,动态生成SQL语句,再执行
小小小小蜗牛 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

自己百度下myql的匹配函数
[/Quote]
匹配函数到时知道 但是匹配后 要返回的字段 怎么来 该怎么解决这个问题?
rucypli 2012-03-30
  • 打赏
  • 举报
回复
自己百度下myql的匹配函数
小小小小蜗牛 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
……
[/Quote]
两个已存在的表中 查询
用表1 中 address 字段 去匹配表二的三个字段
如果
address = uri 还回 ur, parent_classes,name,parent字段
如果
address=host 还回host,name,parent_classes,parent字段
如果
address=domain 还回domain,name, parent
uri host domain 是表1 字段
parent_classes,name,parent ,classes, 是表2字段 返回address(匹配集) parent_classes, name, parent classes
这样应该可以看懂吧 还看不懂我就要挂了 救急啊
ACMAIN_CHM 2012-03-30
  • 打赏
  • 举报
回复
(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式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)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧