MYSQL, несколько объединений и группировка - PullRequest
0 голосов
/ 06 февраля 2020

Я чешу голову, пытаясь найти способ вернуть нужные мне данные. Вот таблицы, которые у меня есть:

**Parts**
 partcode   description

 chicken      foo
 pork         bar
 beef         meh

**Pictures**
partcode     picdata

chicken      010101
pork         <no record>
beef         010101

**Prices**
partcode     price1         price2

chicken      10.00           10.50
pork         11.00           11.50
beef         12.00           12.50

**Customer_Prices**
partcode     custid         cusprice

chicken      JIM            8.50
pork         JIM            <no record>
beef         JIM            7.22
chicken      BOB            8.99
pork         BOB            8.99
beef         BOB            <no record>

Что я пытаюсь сделать, так это вернуть все записи о запасах и различные цены, в том числе Нули, если их там нет! Что я на самом деле получаю в настоящее время, так это множество повторяющихся биржевых кодов в виде разных строк с разными ценовыми значениями. Таким образом, мои желаемые результаты были бы примерно такими (предположим, что я использовал код клиента как JIM

**Results**
partcode   description  picture  price1 price2 cusprice

chicken     foo          010101   10.00  10.50  8.50
pork        bar           NULL    11.00  11.50  NULL
beef        meh          010101   12.00  12.50  7.22

. В настоящее время я использую левые внешние объединения для всех таблиц, это возвращает несколько записей для обработки и обработки цены в разных строках все вместе.

Любая помощь очень ценится!

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2020

Вы можете использовать такой оператор, содержащий INNER JOIN s:

SELECT pr.partcode, pr.description, pc.picdata, ps.price1, ps.price2, cp.cusprice 
  FROM parts pr 
  JOIN pictures pc ON pc.partcode = pr.partcode
  JOIN prices ps ON ps.partcode = pr.partcode
  JOIN customer_prices cp ON cp.partcode = pr.partcode
 WHERE cp.custid = 'JIM';

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...