Как объединить несколько таблиц с несколькими условиями - PullRequest
0 голосов
/ 27 августа 2018

У меня есть шесть таблиц

online_transaction

| date | id | supplier_id | product code |

online_transaction_enc

| date | id | item |

offline_transaction

| date | id |

offline_transaction_enc

| date | id | item |

продукты

| type | product_code |

поставщик

| supplier_id | country |

Выберите количество (элемент), где дата находится между «2018-июнь-01» и «2018-июль-30» И тип = «домашнее хозяйство» И страна = «Малайзия»

Это примерно то, чего я хочу достичь.Я хочу объединить элементы из онлайн и офлайн по дате и идентификатору, чтобы все элементы были объединены, а затем другие требования.Как это можно сделать в MySQL?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Попробуйте это:

 select count(a.item) from 
    (select date, id, item from online_transaction_enc
    union 
    select date, id, item from offline_transaction_enc)a
    inner join 
    (
    select  date,id,supplier_id,productcode from online_transaction
    union 
    select  date,id,supplier_id,productcode from offline_transaction)b
    on a.date=b.date and a.id=b.id
    inner join supplier on b.supplier_id=supplier.supplier_id
    inner join products on b.productcode=products.product_code
    where a.date between '20180601' And '20180730' AND Type='household' AND country='Malaysia'
0 голосов
/ 27 августа 2018
SELECT count(item)
FROM online_transaction_enc
INNER JOIN online_transaction_enc ON supplier_id
INNER JOIN products ON supplier_id
...
WHERE WHERE (date BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')
;

Это решение использует внутреннее соединение.Я считаю, что это то, что вы ищете.Вот больше документации http://www.mysqltutorial.org/mysql-inner-join.aspx

...