Пересечение трех таблиц на MySQL - PullRequest
0 голосов
/ 24 сентября 2019

Таблица списков товаров:

enter image description here

Таблица Калоев:

enter image description here

Таблица Nanays:

enter image description here

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

select Item_List.PID, Item_List.Product, Item_List.supID 
from Item_List where PID in (
   select PID from Kaloys union distinct select PID from Nanays
);

Начальный вывод:

enter image description here

, но я не знаюкак также отобразить столбец количества.Что мне делать?

1 Ответ

0 голосов
/ 24 сентября 2019

Вам нужно FULL OUTER JOIN, чтобы сделать это.Поскольку MariaDB не реализует их, вам нужно смоделировать их, комбинируя LEFT JOIN с RIGHT JOIN.Смотрите ниже:

select
  l.*, x.kqty, x.nqty
from (
  select k.pid, k.qty as kqty, n.qty as nqty
  from kaloys k left join nanays n on k.pid = n.pid
  union
  select n.pid, k.qty, n.qty
  from kaloys k right join nanays n on k.pid = n.pid
) x
join item_list l on l.pid = x.pid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...