對不起,如果標題令人困惑,因為英語不是我的第一語言。但我會嘗試徹底描述我的表格。
我的資料庫中有 3 個表,名為:Restaurant1、Restaurant2 和 ItemList
表餐廳 1 和餐廳 2 都包含名為:PID(產品 ID)和 QTY(數量)的兩列
ItemList 表包含三列,分別命名為:PID(產品 ID)、產品和 supID(供應商 ID)
這是可視化:
餐廳1:
PID QTY
========= ============
p01 1
p04 5
p06 4
p10 4
p12 1
p14 6
餐廳2:
PID QTY
========= ============
p04 5
p09 4
p13 3
專案串列:
PID Product supID
========= ============ ======
p01 Beef Steak mla1
. Beef Cutlet mla2
. Pork Steak .
. Whole Chicken .
. . .
. . .
and so on... mla15
p15
supID 列與此問題無關,因為我想知道如何將 Restaurant 1 和 Restaurant 2 像這樣組合:
餐廳 1 和 2(合并):
PID QTY
========= ============
p01 1
p04 5
p06 4
p10 4
p12 1
p14 6
p04 5
p09 4
p13 3
簡而言之......我想從字面上將兩個表的值合并到一個表中。但我只想使用 JOIN 子句,例如內連接、外連接等。
This is what I've tried that didn't work and I don't know what other solutions I could do.
SELECT ItemList.PID, Restaurant1.QTY, Restaurant2.QTY FROM ItemList
-> OUTER JOIN Restaurant1 ON ItemList.PID=Restaurant1.PID
-> OUTER JOIN Restaurant2 ON ItemList.PID=Restaurant2.PID;
I tried different combinations such as using LEFT JOIN and RIGHT JOIN, but it gives me different output.
Hope some could help.
EDIT: I don't want to make another table. Instead, I just want to display it the way I showed it. In which, the combined list of products and quantities from both tables Restaurant1 and Restaurant2 are displayed.
uj5u.com熱心網友回復:
您需要UNION ALL兩個表才能獲得所有行,然后您可以總結數量
但將所有餐廳放在一張桌子上會更簡單,新列將顯示哪些餐廳有數量。
這也是一個好主意,因為你只能結合一定數量的禁忌
CREATE TABLE restaurant1 ( `PID` VARCHAR(3), `QTY` INTEGER ); INSERT INTO restaurant1 (`PID`, `QTY`) VALUES ('p01', '1'), ('p04', '5'), ('p06', '4'), ('p10', '4'), ('p12', '1'), ('p14', '6');
CREATE TABLE restaurant2 ( `PID` VARCHAR(3), `QTY` INTEGER ); INSERT INTO restaurant2 (`PID`, `QTY`) VALUES ('p04', '5'), ('p09', '4'), ('p13', '3');
SELECT `PID`, SUM(`QTY`) Qty_both FROM (SELECT * FROM restaurant1 UNION ALL SELECT * FROM restaurant2) t1 GROUP BY `PID` ORDER BY `PID`PID | 數量_兩者 :-- | -------: p01 | 1 p04 | 10 p06 | 4 p09 | 4 p10 | 4 p12 | 1 p13 | 3 p14 | 6
db<>在這里擺弄
uj5u.com熱心網友回復:
合并兩個表,然后對數量求和,按產品分組:
select PID, sum(QTY) as QTY
from (
select PID, QTY from Restaurant1
union all
select PID, QTY from Restaurant2
) as r
group by PID;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342390.html
