2012-02-09 31 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