mysql - Join between two tables based on multiple criteria -


i have table accounts columns ip_from, ip_to, start_time, end_time, bytes. there second table called all_audit columns project, ip, time. need join tables in order resulting table columns project, time , bytes. things need considered time matches records fall between start_time , end_time. ip can match either ip_from or ip_to.

the schema 2 tables are:

accounts

+----------------+---------------------+------+-----+---------+-------+ | field          | type                | null | key | default | | +----------------+---------------------+------+-----+---------+-------+ | ip_from        | char(15)            | no   | pri | null    |       | | ip_to          | char(15)            | no   | pri | null    |       | | bytes          | bigint(20) unsigned | no   |     | null    |       | | start_time     | datetime            | no   | pri | null    |       | | end_time       | datetime            | yes  |     | null    |       | +----------------+---------------------+------+-----+---------+-------+ 

all_audit

+-----------+------------------+------+-----+---------+----------------+ | field     | type             | null | key | default |          | +-----------+------------------+------+-----+---------+----------------+ | id        | int(10) unsigned | no   | pri | null    | auto_increment | | project   | varchar(255)     | yes  |     | null    |                | | ip        | varchar(32)      | yes  | mul | null    |                | | time      | timestamp        | yes  |     | null    |                | +-----------+------------------+------+-----+---------+----------------+ 

result

+-----------+------------------+------+-----+---------+----------------+ | field     | type             | null | key | default |          | +-----------+------------------+------+-----+---------+----------------+ | project   | varchar(255)     | yes  |     | null    |                | | time      | timestamp        | yes  |     | null    |                | | bytes     | bigint(20) unsigned| no   |     | null    |       | +-----------+------------------+------+-----+---------+----------------+ 

i know join don’t know start. pointers helpful not competent yet in sql statements willing learn.

i suspect looking this:

select aa.project      , aa.time      , a.bytes   all_audit aa   join accounts      on (aa.ip = a.ip_from or aa.ip = a.ip_to)     , aa.time between a.start_time , a.end_time 

Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -