我有两张table,预约(叫 SOAppts
)和程序代码(称为 SOProccodes
). 预约表是牙科数据集的一部分,该数据集包含对患者执行的操作说明。这些引用存储在 SOAppts
. codeid
柱。其中有二十列(来自 codeid1
至 codeid20
),其中五个可以在小提琴上看到。
http://sqlfiddle.com/#!9/9立方英尺/2 codeid
引用 SOProccodes
存储有关过程的实际信息的表。一 SOProccodes
表条目由过程代码id组成( proccodeid
),类别( category
)以及描述( descript
). 一 proccodeid
也可以包含对多个其他过程代码的引用(以下称为多代码)。
多代码用a表示 category
999和 multicodeXid
可以引用其他过程代码甚至其他多代码的列。多代码最多可引用8个程序代码和/或其他多代码的混合。
有了这些信息,我怎样才能检索到这样一种信息:数据被取消插入(所有codeid列都被转移到行中),层次结构被展平,多代码引用的所有过程代码都可以在appointments表的查询中看到?我已经尝试将这些表连接在一起,但是查询很容易超出mysql的61表连接限制这一事实将这种想法抛诸脑后。
apptid codeid1 codeid2 codeid3 codeid4
22769 1 17 783 725
22891 1 15 55 679
22892 1 55 58 627
22893 1 783 725 18
在本例中,apptid 22769具有725的多代码。 select * from SOProccodes where proccodeid = 1, 720, 725
```
procco descript category multinumof multicode1id multicode2id multicode3id multicode4id multicode5id
1 Periodic 1 0 0 0 0 0 0
720 Fluoride 2 0 0 0 0 0 0
725 Adult Flu 999 1 720 0 0 0 0
我想要 `720` 出现代替 `725` ,所以看起来像这样。
apptid codeid
22769 1
22769 17
22769 783
22769 720
对于引用其他多代码的多代码,我想在它们自己的行中输出所有这些代码。例如,预约22892:
22892 1 55 58 627
有一个627的过程码,这是一个多码,在常规过程码中,引用另一个622的多码 `select * from SOProccodes where proccodeid = 627, 622` ```
procco descript category multinumof multicode1id multicode2id multicode3id multicode4id multicode5id
622 Cont. Care - Proph 999 3 54 17 1 0 0
627 Cont. Care - Compr 999 5 35 30 33 8 622
所以,它应该是这样的(proccodeid 627的所有程序代码和627的子程序代码,622)
apptid codeid
22892 1
22892 55
22892 58
22892 35
22892 30
22892 33
22892 8
22892 54
22892 17
22892 1
暂无答案!
目前还没有任何答案,快来回答吧!