| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1448 人关注过本帖
标题:复杂的SQL查询
只看楼主 加入收藏
taoxinhui
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-8-7
收藏
 问题点数:0 回复次数:5 
复杂的SQL查询
我现在有5个表
表1
sell_id  item_id
we0001   lw00001
we0002   lw00002
we0003   lw00003
表2
item_id  item_de_id
lw00001   ls00001
lw00002   hz00001
lw00003   dl00001
表3
ls_id    email
ls00001  [email]gu@[/email]
表3
hz_id    email
hz00001   [email]zp@[/email]
表4
dl_id    email
dl00001   [email]zw@[/email]
我现在要通过搜索email得到表1的ID,请问怎么写这个SQL语句.麻烦了各位.我想了很久.麻烦各位了
搜索更多相关主题的帖子: SQL item email 搜索 查询 
2008-01-14 19:20
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
将后面三个表用Union All合并.
然后再通过id与表1进行连接即可.

我的msn: myfend@
2008-01-14 20:27
taoxinhui
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复 2# 的帖子
关键是不会写啊,单个的还能写出来.麻烦写出来一下可以吗?
2008-01-14 21:57
taoxinhui
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复 2# 的帖子
select * from lw_item_account
where item_id in (
select item_id from lw_deputy_info,lw_item where lw_item.item_deputy_id=lw_deputy_info.deputy_id and deputy_email like '%"&search_supply&"%' order by deputy_id desc
 union
select item_id from lw_teacher_info,lw_item where lw_item.item_deputy_id=lw_teacher_info.teacher_id and item_teacher_email like '%"&search_supply&"%' order by teacher_id desc
  union
select item_id from lw_member_info,lw_item where lw_item.item_deputy_id =lw_member_info.member_id and member_email like '%"&search_supply&"%' order by member_id desc)
这样写对不对?
2008-01-14 22:34
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 

如果要求Email是在表3、表4、表5中任意一个表中存在的,来搜索表1中的sell_id:

select 表1.sell_id
from 表1,表2
where 表1.item_id=表2.item_id and 表2.item_de_id in (
select distinct ls_id from 表3
union
select distinct hz_id from 表4
union
select distinct dl_id from 表5
)
前提是:表3表4和表5的这三个字段的定义是一样的。

另外,你的表结构是不是给错了,有2个表3却没有表5,应该是这样的吧:
表3
ls_id    email
ls00001  [email]gu@[/email]
表4
hz_id    email
hz00001   [email]zp@[/email]
表5
dl_id    email
dl00001   [email]zw@[/email]

我写的SQL语句当成是这样的表结构的。


其实表3表4表5的数据没有必要分开在3个表里存储,只需一个表就OK了,添加多一个字段来区分类别:

表345
item_de_id    email    item_de_id_type
ls00001   [email]gu@[/email]    ls_id
hz00001   [email]zp@[/email]    hz_id
dl00001   [email]zw@[/email]    dl_id

[[italic] 本帖最后由 provoke 于 2008-1-20 15:13 编辑 [/italic]]

爱我至爱,至死不渝!
2008-01-20 15:08
快速回复:复杂的SQL查询
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022237 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved