У меня есть 2 таблицы, tableStock и tableParts:

tableStock
+----+----------+-------------+
| ID | Num_Part | Description |
+----+----------+-------------+
| 1  | sr37     | plate       |
+----+----------+-------------+
| 2  | sr56     | punch       |
+----+----------+-------------+
| 3  | sl30     | crimper     |
+----+----------+-------------+
| 4  | mp11     | holder      |
+----+----------+-------------+

tableParts
+----+----------+-------+
| ID | Location | Stock |
+----+----------+-------+
| 1  | A        | 2     |
+----+----------+-------+
| 3  | B        | 5     |
+----+----------+-------+
| 5  | C        | 2     |
+----+----------+-------+
| 7  | A        | 1     |
+----+----------+-------+

И я просто хочу это сделать:

+----+----------+-------------+----------+-------+
| ID | Num_Part | Description | Location | Stock |
+----+----------+-------------+----------+-------+
| 1  | sr37     | plate       | A        | 2     |
+----+----------+-------------+----------+-------+
| 2  | sr56     | punch       | NULL     | NULL  |
+----+----------+-------------+----------+-------+
| 3  | sl30     | crimper     | B        | 5     |
+----+----------+-------------+----------+-------+
| 4  | mp11     | holder      | NULL     | NULL  |
+----+----------+-------------+----------+-------+

Перечислите ВСЕ строки первой таблицы, и если во второй таблице есть информация, в данном случае «местоположение» и «запас», добавьте в столбец, если нет, просто ноль.

Я использовал внутреннее и левое соединение, но некоторые строки первой таблицы исчезают из-за отсутствия данных во второй:

select tableStock.ID, tableStock.Num_Part, tableStock.Description, tableParts.Location, tableParts.Stock from tableStock inner join tableParts on tableStock.ID = tableParts.ID;

Что я могу сделать?

0
Roberto Lopez 25 Июн 2020 в 19:56

1 ответ

Лучший ответ

Вы можете использовать left join. Вот демонстрация.

select
    s.ID,
    Num_Part,
    Description,
    Location,
    Stock
from Stock s
left join Parts p
on s.ID = p.ID
order by
    s.ID

Выход:

| id  | num_part | description | location | stock |
| --- | -------- | ----------- | -------- | ----- |
| 1   | sr37     | plate       | A        | 2     |
| 2   | sr56     | punch       | NULL     | NULL  |
| 3   | sl30     | crimper     | B        | 5     |
| 4   | mp11     | holder      | NULL     | NULL  |
1
zealous 25 Июн 2020 в 16:59