2015-04-14 3 views
1

У меня есть запрос на объединение из 4 таблиц. Из 4 таблиц я получаю общее количество Original_APN из всех 4 таблиц. Для этого я использую следующий запрос.mysql query with Join and union all

SELECT Original_APN SUM(Quanity) Quanity FROM (
    SELECT Original_APN, Quanity FROM hs_apn1 
    UNION ALL 
    SELECT Original_APN, Quanity FROM hs_apn2 
    UNION ALL 
    SELECT Original_APN, Quanity FROM hs_apn3 
    UNION ALL 
    SELECT Original_APN, Quanity FROM hs_apn4 
) a 
GROUP BY Original_APN LIMIT 0,4 

Ниже из положить я получаю:

+---------------+---------+ 
| Original_APN | Quanity| 
+---------------+---------+ 
| 0097512135344 | 30.00 | 
| 0097512203272 | 2.00 | 
| 0097512203296 | 2.00 | 
| 0617823119019 | 200.00 | 
+---------------+---------+ 

Теперь мое требование, у меня есть еще цены таблицы. В этой таблице у меня есть общий столбец Original_APN. В таблице цен IN у меня есть Original_APN, aritkel, product_name и цена. Ниже мой желаемый результат. Но его неспособность присоединиться к этой таблице цен с моим выше объединением всех запросов.

+---------------+---------+---------+--------------+-------+ 
| Original_APN | Quanity | Artikel | product_name | price | 
+---------------+---------+---------+--------------+-------+ 
| 0097512135344 | 30.00 | 122  | TEST1  | 11.00 | 
| 0097512203272 | 2.00 | 34  | TEST2  | 12.45 | 
| 0097512203296 | 2.00 | AX1  | TEST3  | 15.65 | 
| 0617823119019 | 200.00 | MN4  | TEST4  | 22.35 | 
+---------------+---------+---------+--------------+-------+ 
+0

является 'Original_APN' уникальным в' prices' таблице? –

+0

Каков ваш текущий код для присоединения к запросу объединения со вторым запросом? Вы можете сделать что-то вроде 'SELECT Original_APN, Quantity, Artikel, Product_name, Price FROM union_query INNER JOIN price ON union_query.Original_APN = prices.Original_APN;' – Wouter

+0

привет Азиз, нет Original_APN не уникально в таблице цен. извините, я забыл упомянуть еще номер колонки aritcle, который присутствует во всех таблицах. Этот номер статьи уникален в таблице цен – user3408779

ответ

1

Вы можете использовать таблицу псевдонимов, а затем присоединиться к таблице на цены, как это:

SELECT s.Original_APN, s.Quantity, p.Artikel, p.product_name, p.price FROM (
    SELECT Original_APN, SUM(Quantity) Quantity FROM (
    SELECT Original_APN, Quantity FROM hs_apn1 
    UNION ALL 
    SELECT Original_APN, Quantity FROM hs_apn2 
    UNION ALL 
    SELECT Original_APN, Quantity FROM hs_apn3 
    UNION ALL 
    SELECT Original_APN, Quantity FROM hs_apn4 
) a 
    GROUP BY Original_APN 
) s 
INNER JOIN 
prices p 
ON s.Original_APN = p.Original_APN 
+0

привет Азиз, нет Original_APN не уникален в таблице цен. извините, я забыл упомянуть еще номер колонки aritcle, который присутствует во всех таблицах. Этот номер статьи уникален в таблице цен – user3408779