gpt4 book ai didi

php - PHP mysql中具有两列的单个表的Chainup记录

转载 作者:行者123 更新时间:2023-11-29 03:39:12 24 4
gpt4 key购买 nike

我有两列,即:

   caseSno                 newCaseSno
7592 7593
7591 7592
2935 7591
7092 7572

在上表中,caseSno 和 new CaseSno 是两列,其中 in caseSno 是原始案例编号,而后案例已转移到其他人 newCaseSno 保留了新号码,现在我想在此表中找到所有关联的案例。即在第一行 caseSno 7593 应该在我的报告中展开 4 次,因为它与 7593,7592,7591 和 2935 相关联。简而言之,我需要类似 Friends of friend 机制的东西

请帮助我,如何找出与其他列中的每一列关联的所有记录。

简单快速的可执行查询将不胜感激。

最佳答案

一个想法是定义三个表:

CaseTbl         Person             CasePersonHistory
------------ -------------- ------------------
case_id (PK) person_id (PK) case_id (PK)
case_name etc etc... person_id (PK)
case_descr seq_num (PK)
etc etc... etc etc...

编辑:不能使用 case 作为表名...选择其他名称

CaseTbl 总是有一个 id……它是唯一的描述。 Person 也一样。 CasePersonH​​istory 提供案例和具有序列号的人之间的多对多关系,其中最高的 seq_num 是当前拥有案例的人,所有低于 seq_num 是之前拥有该案例的人。

例如,如果

fred's person_id  = 54
mikes's person_id = 55
jane's person_id = 56

如果 case_id1,并且 Fred 最初有这个案例,然后把它给了 Mike,然后 Mike 把它给了 Jane 然后是 CasePersonH​​istory 看起来像...

CasePersonHistory
------------------
case_id person_id seq_num
-----------------------------------
1 54 1
1 55 2
1 56 3

现在您可以通过根据 case_id 从表中选择并找到序列号的最大值来找出 case 的当前所有者或所有者:

SELECT MAX(seq_num) FROM CasePersonHistory WHERE case_id = 1;

或获取当前拥有该案例的人...

SELECT person_id FROM CasePersonHistory WHERE case_id = 1 order by seq_no DESC LIMIT 1

希望对您有所帮助:)

关于php - PHP mysql中具有两列的单个表的Chainup记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16788281/

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