只是寻找更好的方向,而不是解决方案。
我有两张桌子 - A,B
表A具有IP地址和时间(时间将等于或在开始时间和结束时间之间)
表B包含用户名,开始时间,结束时间,IP地址
这项工作,我试图找出表A中的IP地址和时间与表B中的用户名相对应。
更一般地说,谁(用户名)在特定时间使用特定的IP地址。
假设我的解释有意义,这看起来像使用连接的东西可以在两个表之间完成吗?如果不是,那么下一个最佳步骤是什么。我试图避免从一个表到另一个表的大量手动查询。
欢迎任何方向,谢谢。
答案 0 :(得分: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)
是的 - 这正是你应该使用JOIN的那种情况。
SELECT x, y, z
FROM a
INNER JOIN b ON a.ip_address = b.ip_address
答案 2 :(得分:-1)
SELECT *
FROM a
INNER JOIN b
WHERE a.ip_address = b.ip_address
AND b.starttime <= a.time
AND a.time <= b.endtime