gpt4 book ai didi

mysql - SQL查询,如何从一个列表中获取所有元素,而仅从另一个表中获取相似元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:39 24 4
gpt4 key购买 nike

我有 2 个表,它们有 PartID 作为它们的相似性来分支它们。我需要从第一个表中提取 3 列,从表 2 中提取 2 列。

我遇到的问题是表 1 有时比表 2 具有更多或不同的 PartID,这没关系。在第三个表中,我希望能够有一个可以运行的查询,并为我提供第一个表和第二个表中的所有 PartID,即使它们不存在于另一个表中。但是如果它们同时存在,我希望数据像往常一样放在一起

此代码显示了两个表之间相似的 PartID:

SELECT `Sheet1$`.ENSPIECEID, `Sheet1$`.`Part Number`, `Sheet1$`.Description,`Sheet1$`.TITRETYPE, `Sheet1$`.Utilization, `Sheet2$`.Notes, `Sheet2$`.Justification
FROM `Sheet1$` `Sheet1$`, `Sheet2$` `Sheet2$`
WHERE `Sheet1$`.ENSPIECEID = `Sheet2$`.ENSPIECEID

我需要这个以便我可以标记哪些 PartID 仅来自第一个工作表,哪些仅来自第二个工作表。

最佳答案

您可以这样做(您必须替换为您的表名和列名):

对于这个例子,我使用了测试表结构:See it here

tab1 (partid int, description varchar(100))
tab2 (partid int, variation varchar(100))

选择两个表中的零件ID

select *
from tab1 t1
join tab2 t2 on t1.partid = t2.partid;

选择仅在第一个表中的零件ID

select * 
from tab1 t1
left outer join tab2 t2 on t1.partid = t2.partid
where variation is null;

选择仅在第二个表中的零件ID

select * 
from tab2 t2
left outer join tab1 t1 on t2.partid = t1.partid
where description is null;

因此,为了选择不在另一个表中的所有零件 ID,合并最后两个查询的结果

select t1.partid 
from tab1 t1
left outer join tab2 t2 on t1.partid = t2.partid
where variation is null
union
select t2.partid
from tab2 t2
left outer join tab1 t1 on t2.partid = t1.partid
where description is null;

关于mysql - SQL查询,如何从一个列表中获取所有元素,而仅从另一个表中获取相似元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18194481/

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