2012-02-09 30 views
0

只是寻找更好的方向,而不是解决方案。这是一个加入工作

我有两个表 - A,B

表A具有IP地址和时间(时间将等于或开始时间和结束时间之间)

表B具有用户名,开始时间,结束时间,IP解决

的工作,我试图找出什么IP地址和时间在表A对应的用户名表B.

更一般地,谁(用户名)在特定的使用特定的IP地址时间。

假设我的解释是有道理的,这似乎像使用join可以在两个表之间有所建树?如果不是下一步最好的一步。我试图避免从一个表到另一个表的很多手动查询。

欢迎任何方向,谢谢。

回答

6

是,联接为宜。该条件需要是一个符合IP地址和时间约束的复合条件。

select B.username, A.ipaddress, A.time 
from A inner join B on A.ipaddress = B.ipaddress 
         and A.time between B.starttime and B.endtime 
+1

+1。你用鼠标点击击败了我。 :)删除我的答案。 – 2012-02-09 18:55:16

+0

这就是我想知道的。有了这些例子,我认为你只是救了我8个小时。干杯 – notmyname 2012-02-09 19:05:05

1

是 - 这也正是那种情况下,你应该使用在JOIN

SELECT x, y, z 
     FROM a 
INNER JOIN b ON a.ip_address = b.ip_address 
-1
SELECT * 
FROM a 
INNER JOIN b 
WHERE a.ip_address = b.ip_address 
    AND b.starttime <= a.time 
    AND a.time <= b.endtime