【问题标题】:Three Table Intersection on MySQLMySQL上的三表交集
【发布时间】:2020-01-24 20:37:30
【问题描述】:
Item_List 表:
Kaloys 表:
Naays 表:
嗨,我有三个表格,可以在提供的图像上看到,我不知道如何处理这个任务,即显示两个客户(kaloys 和 Nanays)需要的产品组合列表,包括数量。好吧,我通过输入以某种方式显示了两个客户的需求
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
);
初始输出:
但我不知道如何也显示数量列。我该怎么办?
【问题讨论】:
标签:
jquery
mysql
database
【解决方案1】:
您需要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