gpt4 book ai didi

SQL 将两个属性作为 1 个组合进行比较

转载 作者:行者123 更新时间:2023-12-02 00:34:06 25 4
gpt4 key购买 nike

我是一名学生,刚接触数据库编程和 Stack Overflow!

基本上我有一个数据库有:

表格 => 属性

Mine => MineID, Name, NumberOfWorkers
Ore => OreID, Name, ChemicalFormula
OreProduction => OreProdID, Mine, Ore, AmountPerYear
Contract = > ContractID, Ore, Mine, Smelter, AmountOfOre

还有其他表格,但我认为这些表格与我的问题相关。

现在我的问题是:

“哪些矿山有能力开采尚未承包给冶炼厂的矿石,以及它们是什么矿石?”

现在这给了我所有可以开采矿石并将其承包给冶炼厂的矿山

SELECT DISTINCT Mine.Name, Ore.Name
FROM OreProduction
INNER JOIN Mine
ON Mine.MineID = OreProduction.Mine
INNER JOIN Ore
ON Ore.OreID = OreProduction.Ore
INNER JOIN ContractDetail
ON OreProduction.Mine = ContractDetail.Mine
AND OreProduction.Ore = ContractDetail.Ore

我怎样才能得到它的逆?我试图将其用作子查询,但我如何告诉 SQL Mine 和 Ore 一起不在上面的子查询中?

我希望你已经明白我想说的,并提前感谢你的回复

最佳答案

尝试 LEFT JOIN 并使用 WHERE 子句:

SELECT DISTINCT Mine.Name, Ore.Name
FROM OreProduction
INNER JOIN Mine
ON Mine.MineID = OreProduction.Mine
INNER JOIN Ore
ON Ore.OreID = OreProduction.Ore
LEFT JOIN ContractDetail
ON OreProduction.Mine = ContractDetail.Mine
AND OreProduction.Ore = ContractDetail.Ore
WHERE Contract.Mine is null

关于SQL 将两个属性作为 1 个组合进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com