gpt4 book ai didi

mysql - 连接一列并返回不相互的记录

转载 作者:行者123 更新时间:2023-11-30 00:43:50 28 4
gpt4 key购买 nike

通过列上的 JOIN 选择所有记录并返回它们共享的值(即对于每个表的列来说是唯一的)的最简单方法是什么?

我正在寻找类似于 PHP 的 array_diff();

因此,如果表列包含以下值:

Table 1 column values: 1, 45, 7, 99, 31

Table 2 column values: 100, 3, 7, 31, 22

结果应该返回以下值:1, 45, 99, 100, 3, 31, 22(即跳过共同值 7 31 )。

最佳答案

这是基于文本“返回它们不共享的值,即对于每个表的列来说是唯一的?”。

有几种方法可以解决这个问题。也许最明显的是从第一个表中获取所有内容,而不是从第二个表中获取所有内容,反之亦然:

select value
from table1
where not exists (select 1 from table2 where table2.value = table1.value)
union all
select value
from table2
where not exists (select 1 from table1 where table2.value = table1.value);

如果两个表中都没有重复项,则另一种方法是将表合并在一起,然后返回仅出现一次的表:

select value
from (select value from table1 union all
select value from table2
) t
group by value
having count(*) = 1;

编辑:

array_diff 的等价物很简单:

select value
from table1
where not exists (select 1 from table2 where table2.value = table1.value)

它不对称。

关于mysql - 连接一列并返回不相互的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553929/

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