我被要求使用SQL,但不明白聯合運算子的用法。 我的目標是為每個冰淇淋檢索3個列: ice_cream_id, ice_cream_name, manufacturer_name。這些應該根據ice_cream_id以升序排列。因此,例如,如果我有Plain Vanilla冰淇淋,我不想識別所有3個制造商,而只想識別其中一個。
我理解SELECT和FROM命令,但不理解WHERE中的聯合運算子。SELECT ice_cream_id, ice_cream_name, manufacturer_name FROM ice_cream, manufacturer 。
另外,我應該檢索制造成本大于1的所有冰淇淋的ID、名稱、制造成本和制造商名稱。我想我也應該使用WHERE來處理這個問題?
manufacturer
制造商_ID 制造商_名稱 國家
--------------- ----------------- ----------
1 Ben & Jerry的加拿大
2 4位朋友 芬蘭
3 Gelatron 意大利
ice_cream
ice_cream_id ice_cream_name manufacturer_id manufacturing_cost
------------ ---------------- --------------- ------------------
1 普通香草味 1 1
2 素食香草味 2 0.89
3 超級草莓 2 1.44
4 非常普通的 2 1.2
成分
成分_ID 成分_名稱 千卡 蛋白質 植物基
------------- --------------- ---------- ---------- -----------
1 奶油 400 3 0
2 椰漿 230 2.3 1
3 糖 387 0 1
4 香草提取物 12 0 1
5 草莓 33 0.7 1
6 黑巧克力 535 8 1
包含
冰淇淋_id 成分_id 數量
------------ ------------- ----------
1 1 70
1 3 27
1 4 3
2 2 74
2 3 21
2 4 5
3 1 60
3 3 10
3 5 30
4 2 95
4 4 5
uj5u.com熱心網友回復:
SELECT ice_cream_id, ice_cream_name, manufacturer_name from manufacturer JOIN>
包含 ON manufacturer.ice_cream_id = contains.ice_cream_id LEFT join ingredient
ON contains. ingredient_id = ingredient. ingredient_id ORDER BY ice_cream_id ASC;
請試試這個,看看是否有幫助。如果沒有,請告訴我。我會幫助你的。
uj5u.com熱心網友回復:
使用join,你可以將兩個或更多的表的行結合起來。
在你的例子中:
SELECT i.ice_cream_id, i.ice_cream_name, m.manufacturer_name
FROM ice_cream i INNER JOIN manufacturer m ON i.makers_id = m.makers_id
ORDER BY i.ice_cream_id。
通過INNER JOIN,你可以將兩個表中都需要有一個值的行結合起來。所以NULL是無效的。
uj5u.com熱心網友回復:
你不需要在where子句中連接兩個表。 像這樣做:
SELECT ic.ice_cream_id, ic.ice_cream_name, mf.maker_name
FROM ice_cream ic.
JOIN manufacturer mf on ic.manner_id = mf.manner_id
在這個例子中ic和mf是你使用的表的別名。
你可以根據你想做的事情使用不同的 JOIN 命令(比如 LEFT JOIN 或 RIGHT JOIN...)。為了連接兩個表,你使用兩個表中相同的列。有時你需要使用一個以上的列來連接兩個表......
有了這些新的資訊,我相信你現在應該嘗試自己去做第二部分。 "另外,我應該檢索所有制造成本大于1的冰淇淋的ID、名稱、制造成本和制造商名稱,我想我也應該使用WHERE來實作這個目標?
uj5u.com熱心網友回復:
你可以使用這兩個查詢來獲得你想要的結果集。
--檢索每個冰淇淋的3個列。
SELECT ice.ice_cream_id,
ice.ice_cream_name,
man.manufacturer_name
FROM manufacturer AS man
INNER JOIN ice_cream AS ice
ON ice.maker_id = man.maker_id
ORDER BY ice.ice_cream_id ASC;
---成本大于1。
SELECT *
FROM
(
SELECT man.manufacturer_id,
ice.ice_cream_name,
man.manufacturer_name,
SUM(ice.nufacturing_cost) as manufacturing_cost
FROM manufacturer AS man
INNER JOIN ice_cream AS ice
ON ice.maker_id = man.maker_id
GROUP BY man.manufacturer_id。
man.manufacturer_name,
ice.ice_cream_name
) AS TotalCost
WHERE TotalCost.manufacturing_cost > 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/307800.html
標籤:
