gpt4 book ai didi

sql - SQL中如何轻松查看多个表是否互斥?

转载 作者:行者123 更新时间:2023-12-04 18:25:26 26 4
gpt4 key购买 nike

我有 1 个主表,其中包含我的全部 ID 和 15 个不同的表,这些表是该主表的子集(但总体上并不详尽,即主表中的 ID 不在 15 个不同表中的任何一个中) .我正在寻找一种聪明的方法来查看 15 个表中是否有任何具有相同 ID 的表,如果有,则查看每对表相交的名称和 ID 数。我认为这可以通过为每个表使用 14 个内部联接来完成。但是,可能有一种我想不到的更聪明的方法。我能做什么有什么想法吗?

也许它可以是一个矩阵,显示每对表格的交集。也许是这样的:

+----------+--------+--------+--------+----------+---------+
| | Table1 | Table2 | Table3 | Table... | Table15 |
+----------+--------+--------+--------+----------+---------+
| Table1 | 0 | 5 | 2 | ... | 0 |
| Table2 | 5 | 0 | 12 | ... | 9 |
| Table3 | 2 | 12 | 0 | ... | 6 |
| Table... | ... | ... | ... | ... | ...|
| Table15 | 0 | 9 | 6 | ... | 0 |
+----------+--------+--------+--------+----------+---------+

最佳答案

我会按照以下方式做一些事情(我不确定 MSSQL 语法):

with grand_table as (
select 't1' as "table_id", id from table1
UNION ALL
select 't2', id from table2
UNION ALL
...
select 't15', id from table15 )

SELECT t1.table_id, t2.table_id, count(*)
from grand_table t1 full outer join grand_table t2 on t1.id=t2.id
group by t1.table_id, t2.table_id

我觉得这和join所有表格的组合基本是一样的,只是看起来更整洁。它可能效率极低,但话又说回来,您确实需要所有组合才能获得结果。

关于sql - SQL中如何轻松查看多个表是否互斥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50736597/

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