gpt4 book ai didi

sql - 如何检查表中的列数据是否存在于同一个表中?

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

我如何在 SQL select 语句中执行此操作..

考虑到我有这张 table

ID_A - DATE1 - DATE2
=====================
CD99 - 11/25 - 12/08
AB23 - 11/20 - 11/22
AB23 - 11/22 - 12/01
XP72 - 11/23 - 12/08

您会注意到 ID_A=AB23 有两个条目并且第一行的 DATE2 等于第二行的 DATE1,这意味着这两行是连接的。

那么,我如何获取或创建我的 select 语句来查看这些相互连接的线?

编辑:我在 select 语句中试图做的是:一种。检查 DATE2 是否不为空b.从那里检查 DATE2 是否存在于整个表的 DATE1 中并返回列的值。

我想要得到的应该是这样的:

ID_A - DATE1 - DATE2
=====================
AB23 - 11/20 - 11/22
AB23 - 11/22 - 12/01

附言我希望不要使用循环来执行此操作。因为当我有太多数据时,这往往会使服务器响应太慢而无法响应。 - 请注意,我正在比较同一数据库中的列..

@fthiella这是我的示例数据,其中包含我所指的场景。

ID_A - DATE1 - DATE2
=====================
CD99 - 11/25 - 12/08
AB23 - 11/20 - 11/22
AB23 - 11/22 - 12/01
XP72 - 11/23 - 12/08
PQ10 - 11/20 - -n/a-
LM88 - 11/21 - -n/a-
PQ10 - 11/15 - 11/20

从那里我想得到这些:

ID_A - DATE1 - DATE2
=====================
CD99 - 11/25 - 12/08
AB23 - 11/22 - 12/01
XP72 - 11/23 - 12/08

这里是我为什么排除其他人的快速解释:

ID_A - DATE1 - DATE2
=====================
CD99 - 11/25 - 12/08 - not excluded
AB23 - 11/20 - 11/22 - excluded because DATE2 is connected to DATE1 of same ID_A
AB23 - 11/22 - 12/01 - not excluded
XP72 - 11/23 - 12/08 - not excluded
PQ10 - 11/20 - -n/a- - excluded because DATE2 is null
LM88 - 11/21 - -n/a- - excluded because DATE2 is null
PQ10 - 11/15 - 11/20 - excluded because DATE2 is connected to DATE1 of same ID_A (regardless if DATE2 of that line is null)

条件的优先级可以是 - 首先排除空 DATE2,然后检查比较并排除那些在其他行之前的行..

很抱歉占用你这么多时间,我真的很感谢你给我的每一个帮助..现在这个问题可以标记为已回答,再次感谢 fthiella..

最佳答案

SELECT date1.* FROM DATES date1 JOIN DATES date2 On date1.ID_A = date1.ID_A
WHERE date1.DATE2 = date2.DATE1
UNION
SELECT D2.* FROM DATES date1 JOIN DATES date2 On date1.ID_A = date2.ID_A
WHERE date1.DATE2 = date2.DATE1

关于sql - 如何检查表中的列数据是否存在于同一个表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621653/

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