我有两张桌子:
person table accident table
pid name phone acc_id pid type
1 Mike 3123223232 132 1 car
2 Kyle 133 3 snow
3 Nick 3124567654 134 4 cold
4 John 3124566663 135 2 sun
5 Pety 4234345453 136 3 hot
137 2 sun
138 3 snow
139 2 cold
140 1 hot
acc_id
鉴于她有一个有效的电话号码,我需要找到同一个人发生的所有相互参考的事故
所以结果如下:
acc_id reference
133 136
133 138
136 133
136 138
138 133
138 136
132 140
140 132
所以,pid = 3
有事故133, 136, 138
的人,这个人有phone
,因此这三个acc_id
是相互指代的。接下来,pid = 2
也发生了三起事故,但由于她的电话号码未知,我们不包括她。接下来,pid = 1
发生了两次事故132, 140
,她有一个电话号码,所以我们包括她的事故号码。
我知道一种如何编写查询来执行此操作的方法(为了空间我没有包括在内),但它包括两次加入这些表,我认为必须有一种更有效的方法。有谁能够帮助我?