SQL-запрос, который включает все записи - PullRequest
0 голосов
/ 11 февраля 2012

Я занимаюсь разработкой базы данных, и у меня есть таблица (скажем, материалы).У меня есть вторая таблица, которая позволяет мне сохранять материалы, которые я купил, скажем, buy_elements.Например,

MatID: Mat1> количество: 3

MatID: Mat2> количество: 4

MatID: Mat5> количество: 2

MatID: Mat1> количество: 5

Когда я хочу увидеть материал, который я купил по запросу

SELECT materials.id, 
       materials.name, 
       Sum(purchase_elements.quantity) AS QUANTITY
 FROM materials 
   INNER JOIN purchase_elements 
 ON materials.id= purchase_elements.id
 GROUP BY materials.id, 
          materials.name;

Это показывает

Id/name/QUANTITY
1 Mat1  8
2 Mat2  4   
5 Mat5  2

Есть ли способ показать запрося покупаю не только материалы, которые у меня есть, но и все они

Id/name/QUANTITY
1 Mat1  8
2 Mat2  4   
3 Mat3
4 Mat4
3 Mat5  2

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Вам необходимо выполнить LEFT OUTER JOIN, потому что INNER JOIN ограничивает строки только купленными вами материалами и фильтрует материалы, которые не являются частью таблицы purchase_elements.Вам нужно будет изменить ваш запрос следующим образом:

SELECT M.id, M.name, SUM(PE.quantity) AS QUANTITY
FROM materials AS M
     LEFT OUTER JOIN purchase_elements AS PE ON M.id= PE.MatID
GROUP BY M.id, M.name;
0 голосов
/ 11 февраля 2012

Использовать левое соединение .

SELECT materials.id, 
   materials.name, 
   Sum(purchase_elements.quantity) AS QUANTITY
FROM materials 
 LEFT JOIN purchase_elements 
ON materials.id= purchase_elements.[Υλικά IID]
GROUP BY materials.id, 
      materials.name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...