Mysql объединить две таблицы и установить группу во всех таблицах - PullRequest
0 голосов
/ 26 мая 2020

Здравствуйте, у меня в базе данных две таблицы: клиенты и магазины.

Я хочу получить всех клиентов и уточнить, является клиент должником или нет.

Для этой работы я хочу для создания запроса mysql, который собирает покупателей и присоединяется к таблице магазина. Я хочу установить условие для if shops.price_status column = 1 и суммировать значение цены в таблице магазинов.

В противном случае значение этой строки для столбца цен в таблице магазина равно 0.

Структура таблицы моего магазина с некоторыми примерами данных

id   customer_id   product_id  price    price_status
1    81            12          300      1
2    81            12          100      0
3    81            15          200      1
4    90            10          600      0
5    90            15          50       1
6    63            16          10       0

И моя таблица клиентов (вы должны знать, что некоторые клиенты не покупают никаких продуктов, потому что я хочу их увидеть)

id   name
63.  Eva
64.  Nva
81.  Ali
82.  Bill
90.  Mosh

Я хочу получить такой результат

Eva.   0.  // Because price status = 0
Nva.   0.  
Ali.   500 // because have two row that prices status = 1
Bill.  0. 
Mosh.  50. // Because have one row with price status = 1

1 Ответ

1 голос
/ 26 мая 2020

это можно сделать с [MySQL if][1]

SELECT
    c.`name`,sum(if(s.price_status=1,s.price,0)) as price
FROM
customer AS c

    LEFT JOIN
    shops AS s
    ON 
        c.id=s.customer_id 
GROUP BY
    c.id;

, если вы принимаете нулевое значение в price, вы можете использовать

SELECT
    c.`name`,sum(s.price_status*s.price) as price
FROM
customer AS c

    LEFT JOIN
    shops AS s
    ON 
        c.id=s.customer_id 
GROUP BY
    c.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...