日期:2014-05-17  浏览次数:20852 次

求助一查询语句
GM 我刚才发个帖子,再查看帖子  怎么报404

言归正卷  情况如下:
   
a表有主叫被叫两个字段 是多对多关系 如下:
 callera calleda
  123 000
  124 111
  125 000
  125 111
  126 222
  127 333
b表有被叫和短信内容两个字段 被叫有重复的 不同被叫短信内容也有相同的
calledb smscontent
000 aaa
111 bbb
000 ccc
222 aaa

要得出b表中被叫 对应的a表主叫和b表的内容
calledb callera smscontent
000 123 aaa
111 124 bbb
000 125 ccc
222 126 aaa

------解决方案--------------------

select b.calledb,a.callera,b.smscontent from b,a where b.calledb=a.calleda
--没测过,不知道可不可以

------解决方案--------------------
select tb.calledb,ta.callera,tb.smscontent from b tb 
left join a ta on tb.calledb=ta.calleda
------解决方案--------------------
不急着出SQL
楼主没把连接条件说出来,表示他也不清楚里面的关系
对这种情况,不建议新手们直接写SQL

给楼主的建议,把业务关系先梳理清楚。 
数据是否能按自己的理解展现,其中是否存在想像不到的情况。如,a、b 两表从业务上 是不存在关联的,两者强制关联,数据就会乱(a 是 电话、b 是 短信)?
------解决方案--------------------
引用:
不急着出SQL
楼主没把连接条件说出来,表示他也不清楚里面的关系
对这种情况,不建议新手们直接写SQL

给楼主的建议,把业务关系先梳理清楚。 
数据是否能按自己的理解展现,其中是否存在想像不到的情况。如,a、b 两表从业务上 是不存在关联的,两者强制关联,数据就会乱(a 是 电话、b 是 短信)?


差不多吧

表A:主叫、被叫
表B:被叫、短信

应该是以被叫来关联
------解决方案--------------------
这个貌似没办法做连接啊,结果会是笛卡尔集,需要先处理一个表,将短信内容或者主叫合并生成被叫记录唯一的一个中间表,然后再进行连接。不然查询速度和结果都会有问题