sql 左连接

record;   
+----+--------+--------+------------+------------+-------------+-------------------------------+
| id | caller | callee | starttimer | endtime    | recordstate | recordid                      |
+----+--------+--------+------------+------------+-------------+-------------------------------+
|  1 | 9007   | 9008   | 1322098171 | 1322098172 |           2 | 9007-9008-20111124-092930.wav | 
|  2 | 9007   | 9009   | 1322098215 | 1322098216 |           2 | 9007-9009-20111124-093013.wav | 
|  3 | 9007   | 9008   | 1322098222 | 1322098223 |           2 | 9007-9008-20111124-093022.wav | 
|  4 | 9008   | 9007   | 1322098227 | 1322098228 |           2 | 9008-9007-20111124-093026.wav | 
|  5 | 9008   | 9009   | 1322098232 | 1322098233 |           2 | 9008-9009-20111124-093031.wav | 
|  6 | 9007   | 9009   | 1322105279 | 1322105280 |           2 | 9007-9009-20111124-112758.wav | 
|  7 | 9008   | 9009   | 1322105291 | 1322105292 |           2 | 9008-9009-20111124-112810.wav | 

+----+--------+--------+------------+------------+-------------+-------------------------------+
schusrmgr;
+----+-------------+------+----------+
| id | loginnumber | user | usertype |
+----+-------------+------+----------+
|  1 | 9999        | 9009 |        0 | 
|  2 | 9999        | 4002 |        0 | 
|  3 | 9999        | 9008 |        0 | 
|  4 | 9999        | 9007 |        0 | 
|  6 | 9998        | 4002 |        0 | 
|  9 | 9998        | 9007 |        0 | 
+----+-------------+------+----------+

左连接:
select a.caller,a.callee,a.starttimer,a.endtime,a.recordstate,a.recordid 
from record a left join schusrmgr b on b.user = a.caller 

+--------+--------+------------+------------+-------------+-------------------------------+
| caller | callee | starttimer | endtime    | recordstate | recordid                      |
+--------+--------+------------+------------+-------------+-------------------------------+
| 9007   | 9008   | 1322098171 | 1322098172 |           2 | 9007-9008-20111124-092930.wav | 
| 9007   | 9008   | 1322098171 | 1322098172 |           2 | 9007-9008-20111124-092930.wav | 
| 9007   | 9009   | 1322098215 | 1322098216 |           2 | 9007-9009-20111124-093013.wav | 
| 9007   | 9009   | 1322098215 | 1322098216 |           2 | 9007-9009-20111124-093013.wav | 
| 9007   | 9008   | 1322098222 | 1322098223 |           2 | 9007-9008-20111124-093022.wav | 
| 9007   | 9008   | 1322098222 | 1322098223 |           2 | 9007-9008-20111124-093022.wav | 
| 9008   | 9007   | 1322098227 | 1322098228 |           2 | 9008-9007-20111124-093026.wav | 
| 9008   | 9009   | 1322098232 | 1322098233 |           2 | 9008-9009-20111124-093031.wav | 
| 9007   | 9009   | 1322105279 | 1322105280 |           2 | 9007-9009-20111124-112758.wav | 
| 9007   | 9009   | 1322105279 | 1322105280 |           2 | 9007-9009-20111124-112758.wav | 
| 9008   | 9009   | 1322105291 | 1322105292 |           2 | 9008-9009-20111124-112810.wav | 
+--------+--------+------------+------------+-------------+-------------------------------+

左表record的所有满足的记录都会显示,schusrmgr 中的每条记录都会和record匹配,所以记录会有重复显示

--取两个表相同的记录  b.loginnumber=9998
select a.caller,a.callee,a.starttimer,a.endtime,a.recordstate,a.recordid 
from vsrecord a 
where 
a.caller in (select b.user from vsschusrmgr b where b.loginnumber=9998)
or 
a.callee in (select b.user from vsschusrmgr b where b.loginnumber=9998);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值