【问题标题】: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 JOINRIGHT 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2019-07-10
    • 1970-01-01
    • 2012-09-29
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多