+----+--------+--------+------------+------------+-------------+-------------------------------+
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);